gpt4 book ai didi

mysql - 数据库设计 : Multiple join tables or one table with identifying 'table' column

转载 作者:太空宇宙 更新时间:2023-11-03 12:36:24 29 4
gpt4 key购买 nike

我正在设计一个可以标记任何内容的数据库,我可能希望能够选择带有特定标记的所有内容。

我正在为以下两个选项而苦苦挣扎,希望得到一些建议。如果有更好的方法请告诉我。

选项A
多个“多对多”连接表。

tag:  id  tagmedia:  id  title  src  creationmedia_tags:  id  media_id  tag_idarticle:  id  title  content  creationarticle_tags:  id  article_id  tag_id

选项B
单个“标签引用”表,它使用“表”列来标识要连接到哪个表。

tag:  id  tagtag_reference:  id  row_id  tag_id  tablemedia:  id  title  src  creationarticle:  id  title  content  creation

从维护的角度来看,选项 B 似乎更有利,但考虑到 SQL 查询选择所有内容并且认为没有多个查询是不可能的。

最佳答案

当使用选项B时,您不能为其他表设置外键。因此,我会选择选项 A,并为每个 m:n 关系创建一个表。

“从维护的角度来看选项 B”——是一场噩梦。如果删除文章会怎样?具有该 row_id 的所有行都将保留在 tag_reference 表中。您始终需要手动更新这些条目。

关于mysql - 数据库设计 : Multiple join tables or one table with identifying 'table' column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12910275/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com