【发布时间】:2010-06-16 02:44:59
【问题描述】:
所以我正在制作一个允许用户建立联系人列表的网站。所以他们是用户,用户有列表,列表有联系人。在我看来,我需要 3 张桌子,但我只是想确定一下。
当然会有一个用户表,然后是一个“列表列表”表,其中包含用户名和列表名作为主键,以及我们想要附加到整个列表的任何其他信息。最后,由于缺少更好的词,列表表将再次具有用户名/列表名 p.k.,然后是联系人 ID 和注释,以便用户附加到该特定列表上的该联系人。
我希望这是一个清晰的解释。出于某种原因,我对这种安排感到不确定。一方面,如果网站变得流行,List 表可能会膨胀到数十亿行。而且每个人的列表信息都在同一张桌子上乱七八糟地感觉有点奇怪。我想我可以为每个用户甚至每个列表创建单独的表,但出于其他原因,这似乎是个坏主意。
我的数据库解释假设我可以在我的表上使用外键,目前这实际上不是一个选项。如果我无法启用 InnoDB 表,我可能会在列表中使用 ID,而不是依赖于复合键。也许我还是应该这样做?
【问题讨论】:
标签: database-design