Mysql 数据库设计

Mysql 数据库设计,mysql,database,Mysql,Database,我参和了这个项目,它有上千个用户,我们需要存储用户的基本信息,比如姓名、工作、地址等,然后我们会对这些用户进行评论。现在我的问题是,是否需要为每个用户的评论创建一个新表,或者创建一个单独的表,在其中存储所有用户的所有评论? 我们还需要提供搜索功能,这样,如果你想找到一个特定的用户,你可以搜索它。 我正在使用mySql作为数据库 欢迎提出任何建议。 提前感谢。从名为[tbl_user]的表开始,主键为[userID],该表包含每个用户的基本信息 创建一个名为[tbl_review]的表,主键为[r

我参和了这个项目,它有上千个用户,我们需要存储用户的基本信息,比如姓名、工作、地址等,然后我们会对这些用户进行评论。现在我的问题是,是否需要为每个用户的评论创建一个新表,或者创建一个单独的表,在其中存储所有用户的所有评论? 我们还需要提供搜索功能,这样,如果你想找到一个特定的用户,你可以搜索它。 我正在使用mySql作为数据库

欢迎提出任何建议。
提前感谢。

从名为[tbl_user]的表开始,主键为[userID],该表包含每个用户的基本信息

创建一个名为[tbl_review]的表,主键为[reviewID],该表包含每个审阅,并具有字段[userID],该字段与[tbl_user]具有一对一的联接关系。 附加: 正如我所说,你总共需要两张桌子,不多不少。 一个用户为1人,[tbl_user]中的记录数等于您的人口中唯一的人数。 无论一个人写0篇评论、写1篇评论还是写100篇评论,他/她在[tbl_user]中都有1条记录。 一篇评论是一个人对另一个人写的一篇叙述,[tbl_review]中的记录总数等于写的评论数。 [tbl_review]中的每条记录确实需要两个链接回[tbl_user][userID]的字段,即[tbl_review]![reviewer\u userID]和[tbl\u review]![查看用户ID]。 无论5次审查是由同一个人撰写的,还是针对同一个人撰写的,每个审查都由[tbl_review]中的1条记录表示。 这类主题通常称为数据库项目体系结构。这是头脑风暴阶段,在此阶段,您可以规划数据库表和关系的良好总体设计


随着越来越多的数据集进入混合,这类事情会变得非常复杂。实际上,数据库设计应该考虑到您的应用程序。 IE如果您的应用程序的目的是只对所有这些数据进行数字化,如果它们不经常被访问,您可以考虑将它们存储在一个表中。
但是如果您需要频繁访问数据,并且需要执行大量的搜索排序操作,那么最好拆分表,否则MySQL将需要很长时间来处理数据

看一看。用一张单独的桌子。您可以添加用户ID、审核日期、审核人和审核本身。从长远来看要灵活得多,而且你会有一个用户回顾的历史。我会对自己参与一个如此雄心勃勃的项目而知之甚少感到谨慎。注定要失败。人们用很少的知识做了很多事情,学习的过程是一个持续的过程,因此不应该害怕提问和学习。每个用户也可以有多个评论?那么在这种情况下会发生什么?我是否需要为每个用户创建一个单独的表?我认为这是不实际的,因为我们有成千上万的用户。@AbdurRahmanWarriach,不需要为每个用户创建单独的表。…[如上所述]可能有多个评论对于一个用户,上述解释的设计至少对我来说是正确的方法!谢谢这意味着我们有一个[tbl_review],我们可以存储每个用户的多个评论,然后将它们与[tbl_user]链接。