Mysql 对于旧的数据库结构,什么样的数据库设计更好?
我有一个旧数据库,在那里我存储了节日和庆祝节日的日期的数据Mysql 对于旧的数据库结构,什么样的数据库设计更好?,mysql,Mysql,我有一个旧数据库,在那里我存储了节日和庆祝节日的日期的数据 id country hdate description link 1 Afghanistan 2008-01-19 Ashura ashura 2 Albania 2008-01-01 New Year Day new-year 上述结构的缺陷在于,我重复了每个节日、每年和每个国家的日期以外的数据 例如,我为阿舒拉和阿富汗存储了200
id country hdate description link
1 Afghanistan 2008-01-19 Ashura ashura
2 Albania 2008-01-01 New Year Day new-year
上述结构的缺陷在于,我重复了每个节日、每年和每个国家的日期以外的数据
例如,我为阿舒拉和阿富汗存储了2009年的新日期
我试图限制冗余并将表拆分为
countries (id,name)
holidays (id, holiday, celebrated_by, link)
// celebrated_by will store the id's of countries separated by ','
holiday_dates (holiday_id, date, year)
// date will the full date and year will be as 2008 or 2009
现在我的结构也有一些问题
考虑一下,我把独立日这样的节日储存起来,这在更多的国家很常见,但会有不同的日期。因此,如何处理此问题以及链接也必须有所不同。
我需要列出庆祝同一节日的国家,当我描述一个节日时,我需要列出该国家将庆祝的所有其他节日
最重要的是,我在旧表中已经有了大量的数据,一旦新设计完成,我需要将其拆分到新表中
有什么想法吗?建立n-n关系怎么样 表:国家
- 国家/地区识别码(PK)
- 国家/地区ID(FK)
- 假日标识(FK)
- 假日ID(PK)