用于标记多种类型实体的数据库设计

Saa*_*aab 5 tagging database-design

我目前正在设计一个用于存储食谱的数据库模式.在这个数据库中,我希望能够标记不同类型的实体(成分,配方发布者,食谱等).所以标签有多个n:m关系.如果我使用"三表设计",这将导致我拥有的每种实体类型(食谱,配料,发行人)的表(交叉表).换句话说,每次我介绍一个实体时,我都要为它添加一个交叉表.

我正在考虑创建一个具有唯一ID的表,所有实体都引用该表,并且在tags表和"unique id"-table之间建立:m关系.这样,"unique id"-table和tag表之间只有一个交叉表.

以防万一有人会认为这个问题已被提出.我已经阅读了数据库设计标记.并且提到了三种表格设计.

Tjo*_*ras 1

我认为你走在正确的道路上。你描述得很好,你有几个不同的实体。您可以创建一个名为“实体”的表,其中包含所有公共属性(如果有)。例如

实体

  • 实体ID
  • 姓名

成分

  • 实体ID
  • 数量

菜谱发行者

  • 实体ID
  • 一些其他信息

现在您可以有一个表来标记实体。