【发布时间】:2020-06-17 12:51:49
【问题描述】:
我的表有下表:
- 团队
- 联赛
- 玩家
- 教练
- 关键词
现在,在关键字表中,有几列:id、topic_id、topic_type。
对于球队、联赛、球员和教练,他们有多个关键字(与关键字的一对多关系)。例如:如果团队表中有 id 为 4 的团队 ABC;在关键字表中,将有 id, 4, team。如果玩家表中有id为3的玩家CDE;在keywords表中,会有id、3、player等。
所以,在这里我要做的是在关键字中添加一个约束,当从任何 topic_type 中删除主题时,我可以删除该关键字。 我该怎么做? 我们可以通过阅读一些答案的 Schema ondelete Cascade 轻松做到这一点,但在我的情况下,应该有一个限制,但来自多个来源。
如何对所有球队、联赛、球员和教练的关键字表设置限制条件?
谢谢
【问题讨论】:
-
数据库有表。表有列。见meta.stackoverflow.com/questions/333952/…
-
让一个字段可能引用多个表是一种糟糕的设计。最好的办法就是为每个“父”表的关键字创建一个单独的“子”表。
-
是的,我同意@Uueerdo 你必须先规范化你的数据库。使用糟糕的设计会导致许多后果。
标签: php mysql sql database laravel