【问题标题】:How to organize database table for many users?如何为多个用户组织数据库表?
【发布时间】:2018-09-20 08:41:46
【问题描述】:

我想知道为您的用户组织带有任务的数据库表的标准方法是什么。

我们以奇妙清单为例 - 有很多用户存储他们的 TO-DO 任务。

是否应该有一个tasks 表和user_id 列来确定谁是任务的所有者?

还是应该有很多表,如user1_tasksuser2_tasks 等...?

【问题讨论】:

  • 无论里面的数据如何,您都应该有一个固定数量的表,因此您最好选择“一个tasks 表和user_id 列”。您还应该查看外键以确保 user_id 有效
  • 您不应该创建像user1_tasksuser2_tasks 这样的表,因为这不是一个可扩展的解决方案。你会创建多少张表?假设 5. 如果您最终想要一个包含六个用户的列表怎么办?
  • 从安全角度来看这也很好吗?将多个用户的数据存储在一张表中?
  • 当然,从安全角度来看,过滤单个表中的列与从不同表中进行选择没有什么不同
  • 在关系数据设计中,当您发现自己在表或列的名称中添加数字时,您可能没有正确进行设计。

标签: database database-design


【解决方案1】:

如果一个用户可以有多个任务,一个任务可以有多个用户,则需要创建3个表:userstasksusers_tasks

users_tasks 将是一个包含user_idtask_id 的表,并且会在每次将任务分配给用户时创建一个元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-31
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多