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