"
Wake up people, it's 2007, and multi-column primary keys are *still* a dumb idea."
Affirmation par ignorance (on dit encore : Ignoratio elenchi...)
"
compound primary key constraints are *business* constraints not *application* keys"
Je ne saisis pas la différence que fait l’auteur à ce sujet...
"
why multi-column primary keys are a dumb idea, but I think the most important one for 2007 is that it breaks REST architecture on the web"
Je ne connais pas l’architecture en question, mais il est évident que si, pour des raisons qui nous échappent, il est nécessaire de disposer d’une clé mono-attribut, il suffit d’ajouter un attribut ad-hoc à l’en-tête de la table concernée et de le déclarer comme seul composant d'une clé alternative (clause UNIQUE de l’instruction CREATE TABLE), sans toucher au reste.
Je suis prêt à parier une poignée de mains contre une poignée de porte que l’auteur ignore que l’on peut avoir plus d’une clé pour une table.
"
But primary key and "unique index" is basically the same thing : the difference is that a table can have only one primary key, while the unique indexes can be more than one. "primary key" is just syntactic sugar for "unique and not null"
Du point de vue théorique, le Modèle Relationnel de Données met en œuvre seulement le concept de clé candidate. Une clé primaire est un cas particulier de la clé candidate, qui perdure avec les SGBD SQL, mais qui dans le contexte du pur Modèle relationnel appartient désormais au passé, car devenu sans emploi.
Une clé candidate est un ensemble d’attributs K d’une relvar R (ou table en SQL) garantissant les deux contraintes suivantes :Unicité. Aucune valeur de R ne peut contenir deux tuples distincts ayant la même valeur pour K.
Irréductibilité (ou minimalité). Il n’existe pas de sous-ensemble strict de K garantissant l’unicité.
Et ces contraintes valent pour la clé primaire, qui est du niveau Modèle Relationnel (mathématique) tandis qu’un index est du niveau physique : pour démontrer qu’une table est en 3e forme normale, j’ai besoin du concept de clé candidate, mais pas de celui d’index. Les rapports entre clé candidate (ou primaire) et index sont ceux qui existent entre la Compagnie du Gaz et Léonard de Vinci : ils sont totalement indépendants l'un de l'autre.
![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
avairet
ni de dire à mon boss que Cake est nul car il ne respecte pas la norme SQL !
Vous pourriez peut-être évoquer le fait que le concept de clé est vital et fait partie des piliers et que sans celui d’association réflexive, les entreprises de l’industrie et de la distribution fermeraient illico boutique...
En tout cas, vos interlocuteurs que j'ai cités, ont besoin d’étudier un minimum la modélisation et la théorie, pour éviter de proférer de telles âneries.
P.S. En écrivant ce qui précède, je n'avais vu les messages 4 et 5. Je suis donc allé faire un tour du côté du site que vous mentionnez et certaines choses sont dites qui ne sont pas sottes. Je regarderai de plus près. Il y a à trier...
Partager