Je cherche un bon moyen de mettre en œuvre - les caractéristiques par défaut pour un objet et de remplacer les valeurs par défaut dans une base de données.Modèle de conception de base de données pour l'héritage/overrides
J'ai une table appelée Produits - qui maintient la liste des produits L'un des produits est boîte aux lettres et la valeur de la couleur d'attribut est bleu j'ai besoin la possibilité de spécifier cette boîte aux lettres est rouge lorsque le pays est au Royaume-Uni Plutôt que de créer une ligne pour chaque pays que je veux pouvoir dire s'il n'y a pas d'entrée pour le pays, utilisez les valeurs par défaut.
Je dispose de plusieurs produits dans le tableau des produits
TIA
Je veux m'assurer de comprendre ce que vous suggérez. Dans cette solution, la valeur par défaut dans la première requête représente la valeur pour le reste du monde tandis que la seconde requête fournit des valeurs spécifiques au pays. La deuxième requête ne devrait-elle pas avoir une condition de jointure - O WH p.product_id = pl.product_id? – shikarishambu
Cela dépend de vos besoins. Si les valeurs spécifiques au pays sont appliquées à chaque produit, la requête ci-dessus est correcte. Si certaines valeurs spécifiques à un pays sont appliquées à un produit spécifique, une colonne product_id doit être ajoutée dans la table ProductLocalization et la clé primaire de cette table doit être (product_id, country_id), la seconde requête doit avoir une condition de jointure comme tu l'as écrit. –
Vous ne devez pas supposer qu'une valeur par défaut signifie que la valeur n'a pas été remplacée. Ce type d'ambiguïté conduit à un désordre de la valeur par défaut qui change jamais. Si une valeur par défaut change, devez-vous mettre à jour les tables enfant avec la nouvelle valeur par défaut? Que faire si une ligne a surchargé la valeur par défaut avec la même valeur ... donc changer la valeur à la nouvelle valeur par défaut serait mauvais. – Chaos