如何设计可以引用另一个表或自定义条目的表

时间:2014-11-06 21:02:53

标签: mysql sql database-design

我有一个网站,有许多不同的实体业务作为客户。

我需要一张表格,为每个商家保留“关闭”日期。

我最初的设计是将所有常见的美国联邦假期列在一张表格中,然后我通过密码日的主表格中的外键来引用。这使得在UI中放置复选框非常容易,因此他们可以轻松地检查联邦假期。

但我还需要支持自定义截止日期。

我的初步设计如下:

+-------------+
| close_dts   |     +-------------+     +--------------+
--------------+     | holidays    |     | holiday_tags |
| id          |     +-------------+     +--------------+
| holiday_id  | --> | id          |     | id           |
| custom_date |     | holiday_tag | --> | tag          |
+-------------+     | date        |     | name         |
                    +-------------+     +--------------+

哪里

  • holiday_tags只是每年发生的主要假期列表。
  • 假期是每年假日,年复一年的实际日期
  • close_dts要么有假期表的链接,要么是自定义日期。

我在这里基本上要问的是如何处理我通常会遇到的情况 喜欢链接到另一个标准项目表,但偶尔也会定义一个自定义项 没有链接到任何东西的项目。

这是MySQL,如果重要的话。

谢谢。

1 个答案:

答案 0 :(得分:1)

你的设计没问题。您可以添加约束,以便始终只填充holiday_id或custom_date。

但是,您可以使您的模型更简单:

+----------------+
| close_dts      |     +--------------+
-----------------+     | holiday_tags |
| id             |     +--------------+
| holiday_tag_id | --> | id           |
| close_date     |     | tag          |
+----------------+     | name         |
                       +--------------+

假日_tag_id可以为空。