我正在设计一个可以标记任何内容的数据库,并且我可能希望能够选择具有特定标记的所有内容。
我正在为以下两个选项而苦苦挣扎,希望得到一些建议。如果有更好的方法请告诉我。
选项 A
多个“多对多”连接表。
标签: ID 标签 媒体: ID 标题 源代码 创建 媒体标签: ID media_id tag_id 文章: ID 标题 内容 创建 文章标签: ID article_id tag_id
选项 B
单个“标记引用”表,它使用“表”列来标识要连接到哪个表。
标签: ID 标签 标签参考: ID row_id tag_id 桌子 媒体: ID 标题 源代码 创建 文章: ID 标题 内容 创建
从维护的角度来看,选项 B 似乎是有利的,但考虑到 SQL 查询来选择所有内容,并且认为没有多个查询是不可能的。