gpt4 book ai didi

MySQL 数据库设计帮助

转载 作者:可可西里 更新时间:2023-11-01 08:01:20 25 4
gpt4 key购买 nike

请原谅这个基本问题,但我对数据库设计领域的陌生让我经常陷入困境。

我有一个网站,该网站在信息系列方面不断发展。一开始我有一种我正在描述的项目,一切都很好。该项目占据了一条记录,并有 34 列(现在回想起来很多)归因于它的描述性数据。随着我对这方面的了解越来越多,我看到许多开发人员将数据(在可行时)分解到不同的表中。

我现在有了与原始项目相关的附加表格,但在描述原始项目时并不总是需要这些表格,所以我将它们分开,以免不必要地查询它们。

无论如何,我有一个我一直在尝试组织的新项目,它是一个 USER。用户表具有典型的列,如用户名、电子邮件、上次登录、关联图像的路径等。这些用户一直在发表评论,我将这些评论保存在另一个表中,该表包含具有与用户和他们所关注的项目相关的 ID 的列正在评论。

现在...我正在向站点添加强制性用户配置文件页面。我应该创建另一个仅包含基本配置文件数据的表,还是将现有用户记录与原始用户表中的配置文件数据附加在一起?我认为如果我要添加“将我从站点中删除”功能,那么内务管理可能会很痛苦,因为我将不得不运行一些东西来杀死用户记录、用户配置文件记录以及与该用户 ID 相关联的任何其他数据表格。

基本上,我要问的是,我应该继续使用这种“细粒度”设计方法——将所有内容分解为基本部分,还是它可以帮助我合并到更大的表格中?我看到一些情况,如果用户删除了他们的帐户,我将留下一堆不相关的数据。例如,原始项目是餐馆...如果我制作一个表来记录对餐馆的“访问”,其中包含餐厅 ID 和用户 ID,如果用户或餐厅从网站中删除,则此“访问”表将有一堆无用的记录说“用户 45 访问了不存在的餐厅”或“不存在的用户访问了餐厅 21”

我希望我说得有道理……我只是想知道随着时间的推移最终得到这些“垃圾”数据是否正常。

非常感谢,罗布

最佳答案

删除“相关”数据是应用程序生命周期中正常、健康的一部分。这就是发生的事情。你只需要去做,就像刷牙或整理床铺一样。不要让两个或三个 DELETE 查询影响您的表的结构。它们并没有那么贵,老实说,如果你认为这太痛苦了,那你就错了:)

如果您使用的是 InnoDB 表,您可以查看 foreign key constraints这将为您完成一些清理工作。

关于MySQL 数据库设计帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2364029/

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