Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL中的假日数据库表_Mysql_Sql_Database_Database Design - Fatal编程技术网

MySQL中的假日数据库表

MySQL中的假日数据库表,mysql,sql,database,database-design,Mysql,Sql,Database,Database Design,我将为假期设计一个数据库表。但直到现在,我还不知道该怎么做 基本上,我的理想数据库表包含: +++++++++++++++++++++++++++++++++++ |Date |Holiday Name |Location ID| **在我的国家,不同的州会有不同类型的假期,所以地点ID扮演着重要的角色 我有所有这些属性,但我不能真正使用日期作为主键。我假设在同一天会有两个或两个以上的假期或节日。我也不使用假期的年份作为主键,因为我想保留每年的所有记录 我不确定应该使用哪个或什么主键来确定

我将为假期设计一个数据库表。但直到现在,我还不知道该怎么做

基本上,我的理想数据库表包含:

+++++++++++++++++++++++++++++++++++
|Date   |Holiday Name |Location ID|
**在我的国家,不同的州会有不同类型的假期,所以地点ID扮演着重要的角色

我有所有这些属性,但我不能真正使用日期作为主键。我假设在同一天会有两个或两个以上的假期或节日。我也不使用假期的年份作为主键,因为我想保留每年的所有记录

我不确定应该使用哪个或什么主键来确定假期


非常感谢您的帮助。

您有一个复合主键
(日期、假日)

我建议将此设置为表中的唯一键。然后,您可以使用一个自动递增列作为主键


假期重叠一点也不奇怪。复活节和逾越节经常重叠。反过来,斋月在太阳年中循环,可以与任何其他(非穆斯林)节日重叠。

您可以制作一个复合主键:

CREATE TABLE INFO (
  HolidayDate DATE,
  HolidayName VARCHAR(255),
  LocationID INT,
  PRIMARY KEY (HolidayDate , HolidayName, LocationID);
)
这意味着在同一地点和同一日期不可能有两个假期