J'essaie de comprendre comment définir le schéma d'une base de données avec Postgresql 8.postgresql: clé étrangère soit tableA ou tableB
J'ai 2 tables:
Journals
, Books
qui définissent les publications je
Journal:
id_j, name, issn, other fields
Book:
id_b, name, isbn, author, other fields
et j'ai une autre table Scans
qui fait référence à la fois logiquement l'onglet précédent les.
Scans:
id, medium, source, status
chaque Journal
ou Book
peut avoir plus d'un Scan
, mais chacun peut se référer Scan
un seul Journal
ou Book
.
Pour formaliser cela, ma première idée était de mettre deux clés étrangères dans Scans
comme
Scans:
id, medium, source, status, id_j, id_b
et remplir soit id_j
ou id_b
mais cette solution me semble un peu bizarre.
Je ne veux pas (s'il est possible) pour définir la table d'une manière comme ceci:
Scans:
id, medium, source, status, id_other_table, other_table_name
parce que je voudrais avoir un lien formel entre les tables.
Une idée?
votre réponse confirme ce que je pensais: je dois normaliser ma base de données ... –
Oui, la normalisation aide habituellement. Dénormaliser la base de données après la normalisation, pas avant. –