Ma question est de savoir comment modéliser des transactions pour différents types de produits.DB question de schéma, types de produits
Donc, il y a une table Transactions:
TransactionId(pk)
Amount
Method
AuthorisedBy(fk)
Et il y a des tables différentes pour les différents types de produits. Table Livres:
BookId(pk)
Name
Description
Price
Et une table Stylos:
PenId(pk)
Color
Description
Price
Et une table pour les services d'affûtage de crayon:
SharpenId(pk)
Description
Price
Maintenant, ma question relie les transactions avec le identifiant particulier des différents articles. Une méthode était d'avoir dans la table de transaction:
TransactionId(pk)
Amount
Method
AuthorisedBy
ProductType
ProductTypeId(fk)
Si le type de produit se réfère au titre de la table, par exemple, livres et l'identifiant du produit désignerait bookID dans ce cas.
ou une autre méthode serait d'avoir une table de liaison des « produits » qui font référence à chacun des différents id des autres tables, de sorte que la table de transactions ressemblerait à ceci:
TransactionId(pk)
Amount
Method
AuthorisedBy
ProductID(fk)
et la table des produits seraient ressembler à ceci:
ProductId(pk)
PoductType
ProductTypeId(fk)
Mais alors c'est une table qui est exactement la même que la table des transactions. Donc, ma question est de savoir comment relier efficacement les différentes tables de types de produits aux transactions? Veuillez noter que je ne suis pas en train de modéliser un service d'affûtage de crayons, ce ne sont que des exemples: P
Mais mes types de produits sont extrêmement différents les uns des autres, et par exemple dans ma table de 'pencil sharpening', parce que c'est un service, il y a BEAUCOUP d'entrées différentes dans ce tableau, et comment ces données seraient stockées dans vos produits tables, car ils n'ont pas de «couleurs», ou d'autres colonnes en commun en dehors du prix, de la description. – theraven
+1 Vous pouvez étendre la table des produits avec une relation 1: 1 pour ajouter certaines propriétés; comme les ProductTypes mentionnés dans cette réponse, ou ProductColor pour votre commentaire.La table de produit elle-même peut contenir tous les champs dont vous avez besoin pour générer une facture, et le code de facturation peut faire sans la complexité nécessaire pour traiter les différents types de produits. – Andomar
Je vais donner une réponse à cette réponse, car elle répond à la question que j'ai posée, mais malheureusement, ma question doit être réformée et posée plus tard. – theraven