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

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

凤财
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表链接到租户表。 我有另一