Bonjour la communauté,
Pour changer j'ai une petite question, je ne sais pas trop si je suis dans la bonne section du forum.
Pour commencer je plante le décors: en prévision du changement de notre ERP, on va mettre en place une base de données pour orchestrer les échanges entres divers applications (WMS, ERP, site web…).
Ici je tiens les rôles de DBA et de développeur, et on utilise Sql Serveur.
Je suis en train de modéliser la base de données, et comme il se doit j'affecte à chaque table possède une clé primaire de type IDENTITY, sauf bien sûr les table d'association, dont la clé est la combinaison des divers clés rapportées (pas plus de 2). Elles possèdent aussi une colonne "code", qui contient une valeur de type chaine ayant une signification pour le commun des mortels.
Et voici mon problème: mes deux collègues (un DSI et un développeur) tiquent sur ce type de données pour les clés. En gros si on prend par exemple une table client et une table commande, ils préfèrent avoir le code du client (de type char)dans la commande, au lieu d'un ID numérique, car "c'est plus simple pour la maintenance"
Autres exemples:
Eux: "Je peux plus facilement retrouver la commande avec le code client".
Moi: "Il suffit d'utiliser une vue"
Eux: "oui mais ça nous oblige à multiplier les vues".
Moi: "Avec des clés numériques, les requêtes seront plus performantes"
Eux: "non, car il faut faire plus de jointures, et par exemple pour créer une commande en import il faut chercher l'id du client, l'id de la devise, l'id du magasin"
Moi: "Si actuellement on a de gros problèmes de performances, c'est en partie parce que les clés sont de type varchar"
Eux: "Non, dans mon ancienne boîte on n'avait pas ce problème"
Bref je ne sais plus trop comment "imposer" de bonnes pratiques avant qu'il ne soit trop tard.
Alors, comment leur faire comprendre qu'utiliser des clés de type IDENTITY, et non des codes de type chaine ?
Merci de votre aide
Tatayo.
Partager