Mysql 如何设计一个既可以引用另一个表也可以作为自定义项的表
我有一个网站,有许多不同的实体企业作为客户 我需要一张表格,上面有每家公司的“截止日期” 我最初的设计是将所有通常的美国联邦假日都列在一个表中,然后通过外键从“关闭日”主表中引用该表。这使得在UI中设置复选框非常容易,这样他们就可以轻松地勾选联邦假日 但我还需要支持自定义截止日期 我的初步设计如下:Mysql 如何设计一个既可以引用另一个表也可以作为自定义项的表,mysql,sql,database-design,Mysql,Sql,Database Design,我有一个网站,有许多不同的实体企业作为客户 我需要一张表格,上面有每家公司的“截止日期” 我最初的设计是将所有通常的美国联邦假日都列在一个表中,然后通过外键从“关闭日”主表中引用该表。这使得在UI中设置复选框非常容易,这样他们就可以轻松地勾选联邦假日 但我还需要支持自定义截止日期 我的初步设计如下: +-------------+ | close_dts | +-------------+ +--------------+ --------------+ | holi
+-------------+
| close_dts | +-------------+ +--------------+
--------------+ | holidays | | holiday_tags |
| id | +-------------+ +--------------+
| holiday_id | --> | id | | id |
| custom_date | | holiday_tag | --> | tag |
+-------------+ | date | | name |
+-------------+ +--------------+
在哪里
- 假日标签只是每年发生的主要假日的列表
- 假日是每年每个假日的实际日期
- close_dts具有指向假日表的链接或自定义日期
谢谢。您的设计还可以。您可以添加一个约束,以便始终只填充假日id或自定义日期 但是,您可以使模型更简单: +----------------+ | close_dts | +--------------+ -----------------+ | holiday_tags | | id | +--------------+ | holiday_tag_id | --> | id | | close_date | | tag | +----------------+ | name | +--------------+ +----------------+ |关闭dts|+--------------+ -----------------+|假日标签| |id|+--------------+ |假日标签id-->id| |关闭日期标签| +----------------+|姓名| +--------------+
假日标记id可为空。这是一个很好的约束点。你能给我一个暗示,那样的事情会是什么样子吗?我不知道你可以做异或约束。没错,MySQL不支持检查约束。但您可以在插入/更新触发器之前签入数据,并使它们在无效数据上引发错误。然而,有了我建议的模型,你就不需要它们了。您只需存储所有结束日期,并将其中一些日期标记为假日,仅此而已。而且访问也很容易:您总是在close_dts中查找日期。这意味着更简单的查询。