Bonjour, j'ai un problème en sql3: quand on crée un type et quand on crée une table? et quelle est l'utilité d'utiliser les types ?
Merci
Version imprimable
Bonjour, j'ai un problème en sql3: quand on crée un type et quand on crée une table? et quelle est l'utilité d'utiliser les types ?
Merci
Si ces "types" sont des domaines, tu peux lire cet extrait de cours de SQLPro.
Par exemple:
Code:
1
2
3
4
5 create type bureau (NumB integer, etage integer, contient list(ref<posteTravail>) );
Code:
1
2
3
4 create table logiciels (codel integer primary key, noml varchar, ......)of new type logiciel;
Code:
1
2
3
4
5
6
7 create table installation ( datei Date, concerneposte ref<posteTravail>, concernelogiciel ref<logiciel>, .... );
Quelle est la différence entre ces 3 exemples et quand on utilise chacun d'entre eux?Code:create table bureaux of type bureau;
merci
As-tu lu le lien que je t'ai donné ?
Ce n'est pas du tout à ça que ça doit servir !
Ton type "bureau" est une donnée multi-valuée qui est contraire au principe élémentaire des bases de données : 1 donnée dans 1 colonne !
Là il faut que tu crées une table "bureau" et la table "installation" contiendra en clés étrangères l'identifiant du bureau et l'identifiant du logiciel.
Un type est fait pour "formater" spécifiquement un type plus générique.
Prenons le cas des codes postaux français. Comme on ne fait pas de calcul avec, le type général est un CHAR(5) mais on ne peut pas y entrer 'abcde', uniquement des chiffres et le transtypage de cet ensemble de chiffres en nombre doit être compris entre une plage de valeur allant de 1000 (code 01000) à potentiellement 97999 (je ne crois pas qu'il y ait de code postal en dehors des départements donc jusqu'aux départements d'outremer qui commencent par 97) mais dans la réalité peut-être moins, il faudrait voir ça avec la Poste.
On pourrait donc définir un type "code_postal" qui serait un CHAR(5) muni de contraintes. Ensuite, dans les tables, on pourrait utiliser ce type et le SGBD fait les vérifications tout seul.