Voici un exemple. Supposons que nous essayons de calculer des frais de service.Existe-t-il une conception de table SQL standard pour remplacer les valeurs par défaut de "grande image" avec des détails de niveau inférieur?
ventes Say aux Etats-Unis attirent une charge de 10 dollars, les ventes au Royaume-Uni attirent une charge de 20 dollars
Jusqu'à présent, il est facile - nous commençons à imaginer un tableau qui répertorie les charges par pays.
permet maintenant supposer que l'Alaska et Hawaï sont traités comme des cas particuliers, ils sont les deux rangées de 15 dollars
qui suggère une table avec les États, l'Alaska et Hawaï sont rechargées en 15, mais nous avons besoin probablement 48 (redondants) tous dire 10. Cela nous donne un problème de maintenance, notre utilisateur veut seulement taper 10 une fois pas 48 fois. Cela ne va pas non plus avec le Royaume-Uni. Le Royaume-Uni n'a pas d'états. Supposons que nous appliquions deux autres règles de coupe croisée.
Si vous commandez par téléphone il y a un supplément de 10% sur la charge. Si vous commandez via le web il y a une réduction de 10%.
Mais pour une raison que les propriétaires de l'entreprise connaissent mieux, le supplément/rabais sur Internet n'est pas appliqué à Hawaï.
Il me semble que c'est un problème assez courant et qu'il y a probablement une disposition bien connue des tables pour stocker les données. La plupart des cas sont traités par des réponses générales, mais il existe des variations de niveau très détaillées. Ils donnent naissance à un grand nombre de combinaisons théoriques, dont la plupart ne sont pas utilisées.
vous devez faire abstraction de l'entité facturable dans les catégories de facturation. alors vous pouvez minimiser le nombre de catégories, en même temps vous permettez la flexibilité dans combien et quelles entités vont à quelles catégories. – Randy