2009-03-23 9 views
2

Ça fait longtemps que je n'ai pas bricolé avec les bases de données, et comme d'habitude, mon esprit a glissé sur ce que je devais faire. Voici moi problème: Aidez-moi à transformer ces structures de données en tables de base de données

  1. J'ai une liste d'entrées (chaînes).
  2. Chaque entrée a son propre nom et son propre identifiant.
  3. Les entrées peuvent partager des noms, mais pas des ID.
  4. Les entrées peuvent également avoir des propriétés (chaînes).
  5. Les entrées peuvent avoir plusieurs propriétés identiques.
  6. Chaque propriété pour chaque entrée peut avoir sa propre valeur (chaîne).

Quelle est la meilleure disposition de table pour ces exigences?

Okay question stupide. Merci quand même pour l'aide. : P

+0

Qu'avez-vous jusque là? –

+1

Eh bien, le problème pour moi est de savoir comment gérer les entrées ayant plusieurs propriétés en double. Est-ce que je crée une nouvelle table pour chaque entrée ou quoi? –

Répondre

3

table d'entrée, avec le nom et UniqueID (PK)

propriété Table, avec NomPropriété et ID (PK)

EntryProperty Table avec EntryID (FK), PropertyID (FK), UniqueID (PK), Valeur.

+0

Oh! Duh. Ok ouais, ça résout ça. Jeez espacer. : P –

1

Eh bien, le problème pour moi est de déterminer comment gérer les entrées ayant plusieurs propriétés en double. Dois-je créer une nouvelle table pour chaque entrée ou quoi?

Eh bien, pas :-)

En supposant que vous avez une table d'entrée et de la propriété, je suppose que vous auriez besoin d'une table avec les colonnes suivantes:

id, entry_id, property_id, property_value, timestamp 

Est-ce que l'aide ou Ai-je tout faux?

2
CREATE TABLE entries (
    INTEGER id NOT NULL AUTOINCREMENT, 
    VARCHAR(XX) name, 
    PRIMARY KEY(id) 
) 

CREATE TABLE properties (
    INTEGER id NOT NULL AUTOINCREMENT, 
    VARCHAR(XX) name, 
    VARCHAR(XX) value, 
    INTEGER entryid NOT NULL, 
    FOREIGN KEY(entryid) REFERENCES entries (id) 
) 
Questions connexes