gpt4 book ai didi

database-design - 这是组织我的数据库表的正确方法吗?

转载 作者:行者123 更新时间:2023-12-04 06:51:34 25 4
gpt4 key购买 nike

所以我正在制作一个允许用户建立联系人列表的网站。所以他们是用户,用户有列表,列表有联系人。在我看来,我需要 3 张 table ,但我只是想确定一下。

当然会有一个用户表,然后是一个“列表列表”表,它以用户名和列表名作为主键,以及我们想要作为一个整体附加到列表的任何其他信息。最后,由于缺少更好的词,列表表将再次包含用户名/列表名 p.k.,然后是联系人 ID 和注释,以便用户附加到该特定列表中的该联系人。

我希望这是一个清楚的解释。出于某种原因,我对这种安排感到不确定。一方面,如果网站变得流行,List 表可能会膨胀到数十亿行。而且每个人的列表信息都混在同一张表中也感觉有点奇怪。我想我可以为每个用户甚至每个列表创建单独的表,但由于其他原因,这似乎是一个坏主意。

我的数据库解释假设我可以在我的表上使用外键,目前这实际上不是一个选项。如果我无法启用 InnoDB 表,我可能会对列表使用 ID,而不是依赖于复合键。也许我应该这样做?

最佳答案

您不想为每个用户创建一个表。再往前走,这将是你最糟糕的噩梦。我会去做这样的事情:

User Table
----------
User_ID - Integer - Indexed
Username - VarChar[8]
First_Name - VarChar[30]
Last_Name - VarChar[40]

List Table
-----------
List_ID - Integer - Indexed
User_ID - Integer - Indexed
List_Name - VarChar[30]

List_Contact Table
--------------
List_ID - Integer - Indexed
Contact_ID - [whatever data type it is in the existing Contact table]

User.User_ID=List.User_ID
List.List_ID=List_Contact.List_ID
List_Contact.Contact_ID=Contact.Contact_ID [Linking to the existing Contact table]

如果您构建了一些记录集缓存,即使您在数据库中有大量记录,您也不会有太大的性能问题。毕竟,所有用户都不会同时进入系统。

编辑:更改了设计以适应现有的联系表。

关于database-design - 这是组织我的数据库表的正确方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3050413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com