我打算为假期设计一个数据库表。但直到现在,我都不知道这样做。
基本上我理想的数据库表包含:
+++++++++++++++++++++++++++++++++++
|Date |Holiday Name |Location ID|
**我国的不同州会有各种类型的假期,因此位置ID起着重要作用。
我有所有这些属性,但我不能真正使用日期作为我的主键。我假设同一天会有两个或两个以上的假期或节日。我也不把假期作为主键,因为我想每年保留所有记录。
我不确定应该使用哪个或哪个主键来确定假期。
感谢您的帮助,非常感谢。
答案 0 :(得分:1)
您有一个复合主键(date, holiday)
。
我建议把它作为表中的唯一键。然后,您可以将自动递增列作为主键。
假期重叠并不罕见。复活节和逾越节经常重叠。反过来,斋月在太阳年中循环,可以与任何其他(非穆斯林)假期重叠。
答案 1 :(得分:0)
您可以制作复合主键:
CREATE TABLE INFO (
HolidayDate DATE,
HolidayName VARCHAR(255),
LocationID INT,
PRIMARY KEY (HolidayDate , HolidayName, LocationID);
)
这意味着在同一地点和同一日期可能没有2个假期。