我想设计一些允许用户将列表放在一起的东西,比如杂货。如果每个用户可以有多个列表(即不是固定数量)并且这些列表上都有可变数量的项目(同样,未设置),而有些项目出现在几个不同的列表中,我如何创建一个数据库而不是可怕多余的?
我对这种问题完全陌生,以前没有组装任何复杂的数据库,也不知道从哪里开始。这是我想出的一个例子,但我怀疑这是正确的做事方式:
任何帮助或想法将不胜感激!
我想设计一些允许用户将列表放在一起的东西,比如杂货。如果每个用户可以有多个列表(即不是固定数量)并且这些列表上都有可变数量的项目(同样,未设置),而有些项目出现在几个不同的列表中,我如何创建一个数据库而不是可怕多余的?
我对这种问题完全陌生,以前没有组装任何复杂的数据库,也不知道从哪里开始。这是我想出的一个例子,但我怀疑这是正确的做事方式:
任何帮助或想法将不胜感激!
您可以join table LIST_LINK_ITEM
在三个表之间创建
她的主键是:三个主键的组合
看起来你需要类似的东西:
列表对用户是私有的,但一个项目可以在多个列表之间共享:
我在上图中使用了识别 USER 和 LIST 之间的关系,在“下游”表中生成了更多“自然”键:
使用 USER 和 LIST 之间的非识别关系(产生“更苗条”的键)的设计如下所示: