【问题标题】:Should a table with only 1 field of useful data be its own table只有一个有用数据字段的表是否应该是它自己的表
【发布时间】:2013-02-13 19:47:41
【问题描述】:

刚刚收到一个关于数据库表的问题。如果表只有一个主键(标识)和一列有用的数据,是它自己的表还是应该在父表中作为数据?

该表存储了用户在创建帐户时设置的安全问题,并在他们想要更改密码或忘记密码时用于重置密码。我有问题的 ID,以及此表中的问题字符串。

我将它放在自己的表中的原因是同一个问题可以用于许多用户,所以为什么要将问题多次存储在父表中。这是我的想法,只是想听听其他人的意见。

编辑:安全问题将由我的团队输入,而不是用户自己。用户将选择要使用的问题之一。

【问题讨论】:

    标签: database database-design


    【解决方案1】:

    我建议使用桥接表进行此示例设计:

    您可以为用户提出多个问题,并且他们的答案是独一无二的。此外,多个用户的问题可能相同。

    【讨论】:

    • 我喜欢您将其从 User 表中分离出来的想法。但是,如果我们只为每个用户使用 1 个问题/答案集,那么将 UserQuestions 表从用户表中分离出来有什么好处吗?
    • @Andy Link:在这种情况下,你应该选择一对一的关系。问题表应该分开,因为多个用户可以有相同的问题,他们将从问题列表中进行选择。只需将用户表中的引用键添加到问题表中即可。
    • 好的,那么按照这个逻辑,我应该对数据库内我的几个表中使用的所有状态缩写执行相同的想法吗?
    【解决方案2】:

    您必须始终尽量防止重复,这就是为什么您的解决方案是最好的。 它还将使您的数据库更小。具有 int 值的外键小于字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-27
      • 1970-01-01
      • 2013-02-01
      相关资源
      最近更新 更多