当前位置: 首页 > 面试题库 >

关于许多表数据库设计问题的评论

凤财
2023-03-14
问题内容

我有桌子:

Articles{...}
Recipes{...}
Notifications{...}
Photos{...}

而且我需要实现“用户评论”功能(例如Facebook)。我应该ArticleComments, RecipesComments以1:n关系制作table:等等吗?还是Comments为所有人创建一张桌子(但我不知道该如何设计)?


问题答案:

您可以创建另一个表CommentableEntity(尽管称其更好)。表中的每一行(ArticlesRecipes等等)都将引用此表中的唯一行。实体表可能具有type指示实体类型的字段(以帮助反向连接)。

然后,您可以有一个以通用方式Comment引用的表CommentableEntity

因此,例如,您将得到下表:

Articles
-----------------
Article_id
CommentableEntity_id (fk, unique)
Content
....

Recipes
-----------------
Recipe_id
CommentableEntity_id (fk, unique)
Content
....

CommentableEntity
-----------------
CommentableEntity_id (pk)
EntityType (e.g. 'Recipe', 'Article')

Comment
-------
Comment_id (pk)
CommentableEntity_id (fk)
User_id (fk)
DateAdded
Comment 
...etc...

您可以在每次添加文章/食谱等时添加CommentableEntity记录。您所有的注释处理代码都必须知道CommentableEntity_id-
它不在乎它是什么类型。



 类似资料:
  • 这是任务: *创建存储学生记录的学生数据库程序,包括: 学生证 全名 年龄 性 课程 注册年份 > 系统将询问用户是输入新的学生记录还是搜索学生记录。 如果他们要搜索学生,请向他们索要学生证。如果找到学生 ID,则输出学生的详细信息,如果没有,则输出找不到。 如果他们将输入新的学生记录,则允许用户输入学生的新详细信息。 程序还必须保持循环,直到用户输入“退出”* 现在,这是一个评估,检查我们对模块

  • 本文向大家介绍数据库设计的主要问题,包括了数据库设计的主要问题的使用技巧和注意事项,需要的朋友参考一下 数据库设计可能是一项艰巨的任务,您需要遵循以下方法并应对挑战,才能获得设计良好的数据库。 数据库设计的关注点和挑战如下: 遵循设计标准 在设计数据库时考虑设计标准非常重要。它为您提供了定义明确的组件。这样,您还可以轻松评估现有设计。 如果您无法遵循设计标准方法,那么不要指望设计是正确的,并且您将

  • 问题内容: 最初,我的数据库中有两个表[Property]和[Employee]。 每个雇员可以有一个“家庭财产”,因此雇员表中有一个“财产”的HomePropertyID FK字段。 后来,我需要对这种情况进行建模,即尽管员工只有一个“房屋财产”,但确实在多个财产上工作或涵盖了多个财产。 因此,我创建了一个[Employee2Property]表,该表具有EmployeeID和PropertyI

  • 问题内容: 我现在正在为我的软件编写地址簿模块。到目前为止,我已经设置了数据库,以使其支持非常灵活的地址簿配置。 我可以为每种类型创建n个条目。类型是指“电子邮件”,“地址”,“电话”等数据。 我有一个名为“ contact_profiles”的表。 它只有两列: 然后有一个名为contact_attributes的表。这有点复杂: 我现在可以链接到这些配置文件,例如从用户表中。但是从这里我遇到了

  • 我刚刚开始将我的项目分离到小微服务中。我有一个处理 API 授权的微服务(检查 API 请求中提供的 apiKey 是否有效),因此为此,我有一个单独的 API 授权数据库,其中包含下表和以下架构: APIKey: ApiKey (VARCHAR, PK) TenantID (INT, FK) 租户:租户ID(INT, PK)名称(VARCHAR) 如您所见,APIKey表链接到租户表。 我有另一

  • 问题内容: 我正在建立一个网站,其中包含不同类型的项目,例如博客,帖子,文章等。用户可以将其中任何一个设置为他/她的最爱。现在,当我处理这个问题时,我有两个选择 为每种对象的用户收藏夹创建一个表。 为所有用户的所有类型的对象创建一个公用表。 第一种结构的问题是,我将不得不查询很多表以显示特定用户的收藏夹。但这将使我可以轻松地将收藏夹分为不同的类别。 但是,如果我必须在一个页面上显示所有收藏夹并将它