Database Reference
In-Depth Information
Règles métier ( suite )
Contraintes SQL ( suite )
Chaque.ligne.n'est.pas.forcément.planifiée.tous.
les.types.de.jours.
L'existence.de.la.table.de.référence. ligne_jour .permettra.
de.stocker.les.couples.valides..Les.données.relatives.aux.
stations.et.aux.horaires.référencent.en.cascade.cette.table.par.
l'intermédiaire.de.clés.étrangères.
Il.n'y.a.pas.plus.de.15 stations.sur.un.même.trajet.
ALTER TABLE ligne_jour_sta
ADD CONSTRAINT nb_stations_trajet
CHECK (ordre BETWEEN 1 AND 15);
Les.horaires.sont.à.afficher.sous.la.forme. hh.min .
(avec. hh .de.6.à.22.et. min .de.0.à.59).
ALTER TABLE horaire
ADD CONSTRAINT ck_format_horaires
CHECK ((heure BETWEEN 6 AND 22)
AND (minute BETWEEN 0 AND 59));
Il.n'y.a.pas.plus.de.8 colonnes.d'horaires.à.
afficher.
ALTER TABLE horaire
ADD CONSTRAINT nb_colonnes_horaires
CHECK (position BETWEEN 1 AND 8);
E-mails des clients et prospects
Le tableau suivant présente les contraintes à programmer pour implémenter les différentes
règles métier. La dernière règle ne peut pas s'implémenter par une contrainte de vériication,
car elle concerne des données de plusieurs tables. Un déclencheur Oracle est proposé dans
cette solution, mais ces tests peuvent également se programmer dans une procédure catalo-
guée dédiée.
Tableau A-7 : Programmation des règles métier (les e-mails)
Règles métier
Contraintes SQL
Une.adresse.e-mail.est.unique.dans.
la.base.de.données.
La.clé.primaire.de.la.table. mails .(l'adresse.e-mail).suffit.à.implémenter.cette.
règle.
Un.client.n'est.pas.un.prospect,.et.
réciproquement.
ALTER TABLE mails
ADD CONSTRAINT ck_prospect_client
CHECK ((id_cli IS NOT NULL AND id_pros IS NULL)
OR (id_cli IS NULL AND id_pros IS NOT NULL));
Un.prospect.ne.peut.ne.pas.détenir.
plusieurs.adresses.e-mails.(une.
maximum).
ALTER TABLE mails
ADD CONSTRAINT un_mail_prospect
UNIQUE (id_pros);
 
Search WWH ::




Custom Search