数据库设计:1 个表还是 2 个表?

2023-12-20

我见过一些数据库设计,其中帐户表中包含所有用户信息,包括密码、电子邮件、出生日期、名字、姓氏等。

我见过其他一些有两张桌子的

用户名(或电子邮件)、密码、状态(激活等)、组(管理员、所有者、用户等)

and

名字、姓氏、出生日期、出生月份、出生年份等

上述方法各有什么优缺点?


两种设计之间的区别主要在于灵活性。如果帐户和用户数据共享一个表,则每个用户必须有一个帐户,并且每个帐户只能有一个用户(除非您添加另一个表以允许除了与该帐户一起生活的用户之外还添加子用户)数据,或者除非您在每条记录中添加具有重复帐户详细信息的新记录,这是非常糟糕的并且与数据库应该做的事情相反)。

使用两个表,您可以轻松地在每个帐户中拥有多个用户,并且还可以选择允许帐户没有用户或用户没有帐户的情况,如果这样做对您的用例有利的话。

权衡是,如果您想要执行诸如确定用户(或帐户中的用户)的帐户之类的操作,并且使用两个表,则必须进行联接。如果您有一个表,您所要做的就是获取行来获取此信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库设计:1 个表还是 2 个表? 的相关文章

  • 将记录分成两列

    我的数据库中有一个 学生 表 其中包含大约 5 000 条记录 我想将这些记录显示在two分区 如何在不执行查询两次的情况下做到这一点 仅使用单个查询 显示示例http www freeimagehosting net uploads f1
  • 为什么 MySQL 创建带有 _seq 后缀的表?

    我创建了一个 InnoDB 表 名为foo在 MySQL 中 一旦我对表执行插入操作 我就会看到另一个表foo seq被建造 如果我删除自动生成的表 它会在下一次插入后出现 是什么原因造成的 听起来像是正在创建一个序列 您是否有自动生成的主
  • Python:如何使用生成器来避免 sql 内存问题

    我有以下方法来访问 mysql 数据库 并且查询在服务器中执行 我无权更改有关增加内存的任何内容 我对生成器很陌生 并开始阅读更多有关它的内容 并认为我可以将其转换为使用生成器 def getUNames self globalUserQu
  • 如何跟踪用户在 X 天内每天访问该网站?

    Stack Overflow 上有一个新徽章 这 woot https stackoverflow com badges 71 woot enthusiast 徽章将授予连续 30 天内每天访问该网站的用户 如何实现这样的功能 如何以最简单
  • 查询中列的顺序重要吗?

    当从 MySQL 表中选择列时 与表中的顺序相比 选择列的顺序是否会影响性能 不考虑可能覆盖列的索引 例如 您有一个包含行 uid name bday 的表 并且有以下查询 SELECT uid name bday FROM table M
  • 如何使用 MySQL 的 LOAD DATA LOCAL INFILE 在导入 CSV 时将字符串日期更改为 MySQL 日期格式

    我正在使用 MySQL 的 LOAD DATA LOCAL INFILE SQL 语句将数据从 CSV 文件加载到现有数据库表中 下面是一个 SQL 语句示例 LOAD DATA LOCAL INFILE file csv INTO TAB
  • Hibernate 对集合的查询过滤器

    我想执行以下查询 from Item i where i categoryItems catalogId catId 然而 这会产生以下异常 非法尝试取消引用集合 所以我用谷歌搜索 找到了这个 Hibernate 论坛帖子https for
  • 当sql连接中存在两个同名列时,如何从一个表列中获取值

    当我连接两个具有相同名称列的表时 我目前面临着尝试获取值的问题 例如 table1 date和table2 date 每个表中的日期不同 我将如何获取 日期 本例中的表1 我目前正在跑步 while row mysqliquery gt f
  • 为什么这会返回资源 id #2? [复制]

    这个问题在这里已经有答案了 可能的重复 我如何从 PHP 中的 MySql 响应中 回显 资源 id 6 https stackoverflow com questions 4290108 how do i echo a resource
  • MySQL Connector/C++ 库链接错误问题

    PROBLEM 好吧 我一直在尝试遵循 MySQL Forge Wiki 和其他一些网站上的示例代码 这些网站提供了有关如何获得简单数据库连接的教程 但由于某种原因 我的项目总是因链接错误而失败 我可以我自己不明白为什么或如何解决它 我仍在
  • MySQL PHP邮政编码比较具体距离

    我试图找出比较一个邮政编码 用户提供的 和一大堆其他邮政编码 现在大约有 200 个邮政编码 之间的距离的最有效方法 相对于加载时间 但它会随着时间的推移而增加 我不需要任何精确的东西 只是在球场上 我下载了整个美国的邮政编码 csv 文件
  • Mysql 中 UNION 子句的替代方案

    我有两张桌子 表 a 表 b table a ID 1 2 3 4 5 7 table b ID 2 3 4 5 6 我必须得到这样的输出而无需UNION命令 ID 1 2 3 4 5 6 7 注意 我有一个联合解决方案 select fr
  • 在服务器上找不到本地主机或 phpMyAdmin:如何修复?

    我按照安装说明进行操作PHP MySQL and PHPMyAdmin 但是当我尝试访问时http localhost phpmyadmin 我收到此错误 未找到 在此找不到请求的 URL phpmyadmin 服务器 然后我尝试访问loc
  • Bugzilla 中分离客户端的基本权限

    我正在尝试配置一个 Bugzilla 实例 这将允许我的客户登录并为其正在开发 维护的网站提交错误 例如 我创建了 2 个名为 TestProject TestProject2 的产品和一个名为 TestClient 的用户 我想要实现的是
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • Asp.net Identity 注销其他用户

    我正在使用 Asp net Identity 来验证用户身份 并尝试从管理端锁定任何用户 但是当我锁定任何在线用户时 它并没有注销 我读过很多关于我的问题的评论 但它们都不起作用 我尝试使用 UserManager UpdateSecuri
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • 映射 mysql 中同一个表的多个值

    您好 我必须使用另一个表中的值 id 获取文本值 表 1 包含值 ID 表 2 包含名称和值 ID 表 1 SEVERITY OCCURENCE DETECTABILITY 2 3 4 表 2 id name value 1 Very Hi
  • SQL不允许表中有重复记录

    如何使其不添加重复项 我想让它通过 ID 之外的所有其他列进行检查 我希望这个无效 ID col1 col2 col3 1 first middle last ID col1 col2 col3 2 first middle last 我希

随机推荐

  • NDB 查询返回零结果。数据存储显示结果

    我发现这个特殊的问题 运行查询 确认记录存在 返回计数为零 这是我的模型 class Description ndb Model description ndb TextProperty time posted ndb DateTimePr
  • 将 OpenCV 矩阵循环转换为 JavaCV

    不久前得到了 O Reilly 的 学习 OpenCV 一书 从那时起 我一直忙于将我看到的所有示例代码从 OpenCV 转换为 JavaCV 通常还会进行一些我自己的修改 一直以来 我都试图尽可能保持纯 OpenCV C 语言 代码并避免
  • 有没有安全的方法来管理 API 密钥?

    我正在使用一个API https www themoviedb org在我的应用程序中 我目前通过 java 界面管理 API 密钥 public interface APIContract The API KEY MUST NOT BE
  • 函数的 va_arg 参数存储在堆栈内存还是堆内存中?

    问题如题 变量参数列表是根据其使用情况存储在堆栈内存中 还是分配到堆中 更重要的是它们存储在哪里 为什么它们存储在 X 中 该标准没有提及实现 只提及 va arg 和相关 宏 的行为 它们甚至不必是宏 根据编译器的 正常 约定 变量参数可
  • Jenkins 在 Websphere 8.5 上运行导致插件类加载错误

    我正在运行 Jenkins 1 552 WebSphere 8 5 with Java 7 on RedHat Linux 我将 Artifactory 插件加载到 Jenkins 中 但是当我进行测试连接时 收到以下错误 org apac
  • MediaPlayer 无法准备?

    我编写了一个流媒体广播应用程序 其功能相当基本 但有些设备拒绝 准备 例如运行 2 2 的我的 Optimus One 我的应用程序在其他 2 2 设备上运行 我兄弟的 S2 运行 2 3 我的 Prime 运行 4 0 3 知道为什么我的
  • 如何抑制 Jasmine 中跳过的测试的输出

    如果我的场景包含 1000 多个测试 并且只想运行其中的选定部分 我可以使用fdescribe 其余的测试被跳过 这很好 但它们仍然污染控制台输出 如何抑制跳过测试的控制台输出 如果您通过 Karma 运行测试 则可以配置一个规范报告器插件
  • 如何在 pandas 中使用滚动?

    我正在研究下面的代码 Resample interpolate and inspect ozone data here data data resample D interpolate data info Create the rollin
  • Wix 如何隐藏功能选项(无子功能)

    有一个类似的问题 在自定义对话框中编辑上下文菜单 选择树 https stackoverflow com questions 12929930 edit context menu selectiontree in customize dia
  • 创建 NSString 后保留计数

    我正在通过以下方法创建一个 NSString 类型的对象 NSString str NSString alloc initWithString aaaaaaaaaaaaaaa NSLog retain count d str retainC
  • Rails 4+ 最佳实践:删除父级,同时保留子级

    我想保留子记录和层次结构 即使父记录被删除 我看到两个选择 保留现有的父级并利用 deleted at 字段来指示 父母本身不活跃 但关系仍然存在 这将导致许多实际上已失效的父记录被永久存储 嗯 将所有废弃的子记录分配给通用 收集器 僵尸父
  • Celery / RabbitMQ - 找出 No Acks - 未确认的消息

    我正在尝试找出如何获取有关未确认消息的信息 这些存储在哪里 在使用 celery 检查时 似乎一旦消息得到确认 它就会处理完毕 并且您可以跟踪状态 假设您有一个结果后端 那么您可以看到它的结果 但从你应用延迟的那一刻起 直到它被承认它处于黑
  • 匿名方法作为函数结果

    我想要做的是将作为函数结果获得的匿名方法分配给相同类型的变量 Delphi 抱怨无法完成任务 显然 Delphi 的事情我想分配 GetListener 函数而不是同一函数的结果 非常感谢对此的任何帮助 type TPropertyChan
  • 如何仅对筛选数据/可见单元格应用 vlookup 公式

    我已经过滤了 A 列 我需要对 A 列中的可见单元格应用 vlookup 公式 我如何在 vba 中实现这一目标 工作表中的总行数为 30 000 过滤后的行数接近 100 您无需 VBA 只需使用 Excel 数组公式即可解决此问题 但如
  • 用 R 进行向量思考

    我知道 R 处理向量的效率最高 应该避免循环 我很难自学以这种方式实际编写代码 我想要一些关于如何 矢量化 我的代码的想法 下面是为 10 000 个非唯一状态组合创建 10 年样本数据的示例 st 计划1 p1 和计划2 p2 st lt
  • 动画边距底部 Silverlight

    我目前正在处理动画 我有一个隐藏搜索面板的网格 单击搜索按钮会将网格向下移动以显示搜索选项 我让这部分工作的问题是网格视图占用了所有可用空间 因此当搜索栏隐藏时它看起来很好 但如果搜索栏可见 那么网格底部就会离开页面 我一直在尝试使用边距来
  • 403 禁止网络根目录中的符号链接

    我位于 LAMP 堆栈上的共享托管包上 没有 shell 访问权限 我可以使用 PHP 创建符号链接symlink 功能 假设我的网络根目录是 home www user1 public 假设我有一个名为的真实目录 home www use
  • 使用 CircleCI 进行 Selen 测试

    我正在使用 CircleCI 我想运行 Huxley 测试 但为此我需要运行硒服务器 我试图运行 selenium 服务器独立 jar 那不是解决方案 如果您知道的话请帮忙 大多数浏览器测试框架都会为您提供 Selenium 如果您需要运行
  • CSS 浮点逻辑

    我创建了 25 个随机宽度和高度的盒子 其中width height 如图所示 document ready function e for var count 0 count lt 5 count for var iter 0 iter l
  • 数据库设计:1 个表还是 2 个表?

    我见过一些数据库设计 其中帐户表中包含所有用户信息 包括密码 电子邮件 出生日期 名字 姓氏等 我见过其他一些有两张桌子的 用户名 或电子邮件 密码 状态 激活等 组 管理员 所有者 用户等 and 名字 姓氏 出生日期 出生月份 出生年份