J'ai quelques tableaux représentant des entités géographiques (CITIES
, COUNTIES
, ZIPCODES
, STATES
, COUNTRIES
, etc.).Comment représenter un ensemble d'entités à partir de tables distinctes?
J'ai besoin de représenter des ensembles d'entités géographiques. Un ensemble peut contenir des enregistrements de plusieurs tables. Par exemple, un jeu peut contenir 3 enregistrements de CITIES
, 1 enregistrement de COUNTIES
et 4 de COUNTRIES
.
Voici deux solutions possibles:
- Une table qui contient trois colonnes - un enregistrement pour chaque entité. La table contiendra plusieurs enregistrements pour chaque ensemble, tous partageant le numéro de série.
set_id INT, foreign_table VARTEXT(255), foreign_id INT
Exemples d'entrées pour jeu # 5:
(5,'CITIES',4)
(5,'CITIES',12)
(5,'ZIPCODES',91)
(5,'ZIPCODES',92)
(5,'COUNTRIES',15)
- une table qui contient une colonne de texte pour chaque type d'entité, qui comprendra une chaîne définir avec les entrées appropriées:
set_id INT,cities TEXT,counties TEXT,zipcodes TEXT,states TEXT,countries TEXT
Donc, l'ensemble ci-dessus sera représenté avec un seul enregistrement
(5,'4,12','','91,92','','15')
D'autres idées? J'adorerais entendre votre contribution. Merci!
Merci! Mais maintenant, étant donné un geolocation_id, comment puis-je remonter à la bonne table? Une façon consiste à ajouter une entrée foreign_id/foreign_table à la table de géolocalisation, mais nous revenons à la case départ. Ou suggérez-vous une requête avec plusieurs jointures? Est-ce efficace? Merci encore! – Sleepster
@bosh: À droite, vous utiliseriez une requête avec plusieurs jointures. Tant que vous définissez des clés étrangères, c'est une opération très efficace! – Andomar