Bonsoir à nouveau,
Je ne l’ai pas précisé, mais l’attribut dateUniteApplicableDepuis de l’entité-type ARTICLE permet de savoir quelle unité est en vigueur depuis telle date. Par contraste, les attributs dateUniteApplicableDebut et dateUniteApplicableFin permettent de savoir quelle unité était en vigueur durant telle période du passé.
Si au fil du temps le mode de contrôle d’un article peut changer, cela est aussi à modéliser :
MCD
MLD
SQL
CREATE TABLE UNITE
(
idUnite INTEGER NOT NULL
, constraint UNITE_PK primary key (idUnite)
)
;
CREATE TABLE ARTICLE
(
idArticle INTEGER NOT NULL
, idUnite INTEGER NOT NULL
, dateUniteApplicableDepuis DATE NOT NULL
, dateControleApplicableDepuis DATE NOT NULL
, constraint ARTICLE_PK primary key (idArticle)
, constraint ARTICLE_UNITE_FK foreign key (idUnite)
references UNITE
)
;
CREATE TABLE ARTICLE_UNITE_HISTO
(
idArticle INTEGER NOT NULL
, dateUniteApplicableDebut DATE NOT NULL
, dateUniteApplicableFin DATE NOT NULL
, idUnite INTEGER NOT NULL
, constraint ARTICLE_UNITE_HISTO_PK primary key (idArticle, dateUniteApplicableDebut)
, constraint ARTICLE_UNITE_HISTO_ARTICLE_FK foreign key (idArticle)
references ARTICLE on delete cascade
, constraint ARTICLE_UNITE_HISTO_UNITE_FK foreign key (idUnite)
references UNITE
)
;
CREATE TABLE ARTICLE_CONTROLE_HISTO
(
idArticle INTEGER NOT NULL
, dateControleApplicableDebut DATE NOT NULL
, dateControleApplicableFin DATE NOT NULL
, idUnite INTEGER NOT NULL
, constraint ARTICLE_CONTROLE_HISTO_PK primary key (idArticle, dateControleApplicableDebut)
, constraint ARTICLE_CONTROLE_HISTO_ARTICLE_FK foreign key (idArticle)
references ARTICLE on delete cascade
)
;
Pour en savoir plus, voyez ici, j’y traite de la dimension temporelle des choses.
Accessoirement, en haut et à gauche de ce message, vous pouvez cliquer sur fsmrel, puis profil pro > compétences.
Partager