J'ai la table de base de données page avec les champs contenttype_id et content_id. Je veux créer un lien d'une page à un contenttype via contenttype_id et se référer à un réel contenu via content_id. Le problème est contenu dépendent du contenttype_id et sont modélisés différemment, donc le content_id fait référence à des tables différentes en fonction de la contenttype_id.Comment modéliser une base de données où une page peut avoir différents types de contenu?
CREATE TABLE "page"
("id" "INT",
"author" "VARCHAR(45)",
"created" "DATE",
"content_type" "INT",
"content_id" "INT")
CREATE TABLE "contenttype"
("id" "INT",
"name" "VARCHAR(45)")
CREATE TABLE "content_redirect"
("id" "INT",
"url" "VARCHAR(45)")
CREATE TABLE "content_script"
("id" "INT",
"url" "VARCHAR(45)",
"params", "VARCHAR(45)")
CREATE TABLE "content_text"
("id" "INT",
"text" "TEXT")
CREATE TABLE "content_process"
("id" "INT",
"step1" "TEXT",
"step2" "TEXT",
"step3" "TEXT")
CREATE TABLE "content_extprocess"
("id" "INT",
"system_id" "INT",
"process_id" "INT")
Comment faire? Ou est-ce déjà théoriquement faux?
Pourquoi le contenu stocké dans des tables différentes? Besoin de plus d'informations, sinon je remplacerai content_id par le contenu réel car il se lit comme une relation un-à-un. –
Les contenus possibles varient de "texte simple" à "script externe" à "processus composés de plusieurs étapes" de sorte que la structure de contenu nécessite des tables différentes – timpeti
Je ne vois aucune raison d'avoir des tables différentes de votre explication. Pourquoi ne pouvons-nous pas avoir à la fois du texte simple et un lien vers le script dans le même tableau? –