mysql - 不确定如何设计有条件的一对多关系

标签 mysql sql database relational-database schema

我有很多不同类型的日历。比方说,蓝色日历和红色日历。我有一张 table 代表我的蓝色日历。还有一张代表我的红色日历的 table 。

蓝色日历和红色日历完全不同,属性也截然不同。这就是为什么我将它们放在单独的表中。

现在,我想要另一个代表日历的表。我的想法是,我可以简单地在 api 中公开一个日历 ID,然后我就能够将该 ID 映射回红色或蓝色日历。

我遇到的问题是我不知道如何构建日历表。我是否应该有两个外键列 - 其中之一始终为空,因为日历不能是红色和蓝色。或者我应该有一个“type”列和一个calendar_id列,这样我就知道calendar_id与哪个表相关?

我想我需要三个某种类型的表。每种类型的日历都有一个,还有一个用于链接它们。我只是不确定构建链接表的正确方法。

或者 - 我的想法完全错误吗?

非常感谢任何帮助。

谢谢!

最佳答案

您应该有两个表,一个用于表示日历结构,另一个用于表示颜色结构。

日历表:

IdCalendar
IdColor
SOME OTHER ATTRB

颜色表:

IdColor
Color

关于mysql - 不确定如何设计有条件的一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41751391/

相关文章:

SQL 查询将字段递增该字段中的前一个数字

mysql - 提高 MySQL 选择查询的执行速度

mysql - 了解弱实体和弱关系

sql - Teradata 是否支持 -Multiple With Clause?

mysql - 我想使用 R 为我的 Shiny 仪表板创建动态下拉菜单?

sql - T-SQL中没有名称的输入参数

php - 图像文件未存储在 laravel 项目中

javascript - meteor 未捕获类型错误 : Cannot read property 'helpers' of undefined

php - 连接数据库时出错 : Access denied for user 'cats' @'localhost' (using password: YES)

PHP 和 MySQL 投票系统 OOP