j'ai une ancienne base de données où je stocke les données des jours fériés et les dates où elles sont célébrées ..Quel serait le meilleur design db pour l'ancienne structure db?
id country hdate description link
1 Afghanistan 2008-01-19 Ashura ashura
2 Albania 2008-01-01 New Year Day new-year
les failles dans la structure ci-dessus est que, je le répète les données autres que la date pour chaque festival et chaque année et tous les pays ..
par exemple, je stocke une nouvelle date pour 2009 pour Ashura et afghanistan ..
j'ai essayé de limiter la redondance et de diviser les tables comme
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
Maintenant, j'ai quelques problèmes avec la structure trop ..
considèrent que je stocker les vacances comme le jour de l'indépendance, sa commune pour d'autres pays, mais il aura des dates différentes. Alors, comment gérer cela et le lien devra être différent aussi..
et je dois la liste des pays qui célèbre les mêmes vacances et aussi quand je décris à des vacances seul que je dois énumérer toutes les autres vacances pays célébrerait ..
Et surtout, J'ai déjà une énorme quantité de données dans les anciennes tables et j'ai besoin de le diviser en un nouveau une fois le nouveau design est finalisé ...
Des idées?
Si je fais comme ça, alors je pense que la redondance ne peut être évité. La principale chose que je voulais séparer est de réduire la redondance. Et considérer la question où je dois aller chercher les pays qui célèbrent le jour des vétérans puis j'ai comparé trois tables à nouveau .. va-t-il réduire la performance lorsque nous nous référons plus de tables? – Clewon
Non, vous n'avez pas à comparer; vous pouvez interroger la table des fêtes pour l'enregistrement de la journée des vétérans et rejoindre les deux autres tables. Très simple. Il sera bon d'avoir un index sur les vacances aussi (c'est-à-dire Date) –
En ce qui concerne la redondance; vous finirez par ne plus avoir de données redondantes (l'enregistrement CountryToHoliday n'existe que lorsqu'un pays a un jour férié). –