Question

Depuis que je sais qu'il ya beaucoup de concepteurs de base de base de données d'experts ici, j'ai décidé de poser cette question sur stackoverflow.

Je développe un site Web dont la principale préoccupation est d'indexer tous les produits qui est disponible dans le monde réel, comme les appareils photo numériques, imprimantes, réfrigérateurs, et ainsi de suite. Comme nous le savons, chaque produit a ses propres spécifications. Par exemple, un appareil photo numérique a son poids, l'objectif, la vitesse d'obturation, etc. Chaque spécification a un type. Par exemple, le prix (je le vois comme une spécification) est un nombre.

Je pense que la façon la plus standard est de créer tout ce que les spécifications sont nécessaires pour un produit déterminé avec son type et l'affecter au produit. Donc, pour chaque prix de produit distinct doit être créé et le numéro de type doit être réglé là-dessus.

Voici donc ma question, est-il possible d'avoir une table pour les spécifications avec toutes les spécifications de ce ainsi, par exemple PRIX avec le type de numéro a été créé avant et juste besoin de chercher le prix dans le tableau et l'affecter à le produit. Le problème avec cette méthode est que je ne vois pas une bonne façon d'empêcher l'utilisateur de créer des entrées en double. Il doit être en mesure de trouver les spécifications dont il a besoin (si elle a été ajoutée avant), et je veux aussi qu'il sache que la spécification qu'il trouve est est en fait celui dont il avait besoin, car il peut y avoir quelques caractéristiques avec le même nom, mais différents types et l'utilisation. S'il ne le trouve pas, il créera.

Toutes les idées?

Mise à jour ---------------------------- ------------------ ----------

Ma question ne porte pas sur la flexibilité db. Je pense que dans le second utilisateurs de la méthode gâchera la table specs up! Ils vont créer des milliers d'entrées en double et aussi je pense qu'ils ne trouverez pas leurs spécifications propres.

Était-ce utile?

La solution

Mon presenté le modèle de données en fonction de vos besoins:

Tableau de SPECIFICATIONS

  • SPECIFICATION_ID, pk
  • SPECIFICATION_DESCRIPTION

Cela vous permet d'avoir de nombreuses spécifications, sans être attaché à un élément.

Tableau de ITEM_SPECIFICATION_XREF

  • ITEM_ID, pk, fk à la table ITEMS
  • SPECIFICATION_ID, pk, fk à la table SPECIFICATIONS
  • VALUE, pk

Avantages:

  1. Faire la clé primaire d'être un composite assure l'ensemble des valeurs sera unique tout au long de la table. Bénédiction ou malédiction, un élément avec une spécification donnée pourrait avoir des valeurs de 0,99 et 1,00 -. Celles-ci seraient valables
  2. Cette configuration permet une spécification d'être associée à 0+ articles.

Autres conseils

Je viens de terminer de répondre à Tableau dynamique Génération qui traite un problème similaire. Jetez un oeil à la modèle d'observation . Si vous remplacez "observation" par "cahier des charges" et "sujet" par "produit" vous pouvez trouver ce modèle utile -. vous aurez pas besoin de tableaux de rapport et Rep_mm_Obs

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top