Bonjour à tous,
Je travaille sur une DB contenant actuellement une 50aine de tables et qui risque encore d'évoluer au fil du temps. (Il s'agit d'une base SQL Server Express (pour le développement mais qui sera migrée en "pro" en production; et j'utilise EF 6)
Il s'agit d'un logiciel ERP gérant, entre autres, les flux commerciaux d'une entreprise ainsi que la gestion du stock.
Je vais décrire un exemple pour illustrer ma question :
Une table "Entête de commande" (CMD) avec une clé primaire composée d'un préfixe et un numéro de commande.
Une table "Détails de commande" (CMDA) avec une clé primaire composée d'un préfixe, d'un numéro de commande, et d'un numéro de ligne. (il y a donc un lien "one to many" entre l'entête et le détails; avec possibilité de ne pas avoir de détail)
Une table "sous détail de commande" (CMDAB) avec une clé primaire composée d'un préfixe, d'un numéro de commande, d'un numéro de ligne, et d'un "item" de sous-détail. (avec un lien "one to many" entre le détail et le sous-détail et la possibilité de ne pas avoir de sous détail)
Une table "Customer" avec une clé primaire composée d'un champ "ID_CUSTOMER" (liée à la table entête de commande par 3 champs : (CMD.CLIENT_ID, CMD.CLIENT_FAC_ID, CMD.CLIENT_EXP_ID car la commande peut être lié à un client mais avoir des informations de livraisons liées à un autre client, idem pour la facturation).
Sur le même schéma, j'ai 3 tables pour lier les expéditions avec un lien entre les lignes de détails de mes expéditions et des lignes de détails de commande. (1 ligne de commande pouvant être liée à plusieurs lignes d'expédition)
Chaque ligne de détail ou de sous détails comportent un champ "PRODUCT_ID" qui les lie à une table "PRODUCT" reprenant les produits vendus ou achetés.
...
(Il existe encore plusieurs autres types de lien)
Les indexes et clés primaires sont configurés pour chaque table mais je n'ai créé aucun diagramme relationnel dans SQL Server Management Studio; donc actuellement les seuls liens existants se trouvent dans ma petite tête.
J'aurais aimé savoir s'il était intéressant de créer ce diagramme et de définir toutes les relations entre les différentes tables avant de générer mon modèle EF dans Visual Studio ? J'ai beau chercher je n'ai pas trouvé l'information et je souhaite structurer un maximum mon travail. (Je m'occupe seul de la DB mais d'autres développeurs me rejoignent pour le reste du travail)
La finalité est de travailler avec un MVVM (.NET, C#)
Merci d'avance pour vos retours
Partager