Pregunta

Como sé que hay un montón de diseñadores principales de base de datos de expertos aquí, decidí hacer esta pregunta en StackOverflow.

Estoy desarrollando un sitio web cuya principal preocupación es el índice de cada producto que está disponible en el mundo real, como cámaras digitales, impresoras, refrigeradores, y así sucesivamente. Como sabemos, cada producto tiene sus propias especificaciones. Por ejemplo, una cámara digital tiene su peso, de la lente, la velocidad de obturación, etc. Cada especificación tiene un tipo. Por ejemplo, el precio (lo veo como una especificación) es un número.

Creo que la forma más habitual es crear lo que las especificaciones son necesarias para un producto específico con su tipo y asignarlo al producto. Así, para cada precio del producto separado tiene que ser creado y el número de tipo debe fijarse en él.

Así que aquí está mi pregunta, ¿Es posible tener una tabla de especificaciones con todas las características en ella, así por ejemplo PRECIO con el tipo de número ha sido creado antes y sólo tiene que buscar el precio en la tabla y asignarlo a el producto. El problema con este método es que no veo una buena manera de evitar que el usuario la creación de entradas duplicadas. Él tiene que ser capaz de encontrar la especificación que necesita (si se ha añadido antes), y también quiero que sepa que la especificación se encuentra es en realidad es la que es necesario, ya que puede haber algunas especificaciones con el mismo nombre pero tipo y uso diferente. Si no lo encuentra, se lo creará.

¿Alguna idea?

---------------------------- ACTUALIZACIÓN ------------------ ----------

Mi pregunta no es acerca de la flexibilidad db. Creo que en el segundo se hace un lío usuarias de métodos de especificaciones de la tabla para arriba! Se va a crear miles de entradas duplicadas y también creo que no encontrará en sus especificaciones adecuadas.

¿Fue útil?

Solución

Mi modelo de datos sugerida en función de sus necesidades:

Mesa SPECIFICATIONS

  • SPECIFICATION_ID, pk
  • SPECIFICATION_DESCRIPTION

Esto le permite tener numerosas especificaciones, sin estar conectada a un elemento.

Mesa ITEM_SPECIFICATION_XREF

  • ITEM_ID, PK, FK a ITEMS tabla
  • SPECIFICATION_ID, PK, FK a SPECIFICATIONS tabla
  • VALUE, pk

Beneficios:

  1. Hacer la clave principal para ser un compuesto asegura el conjunto de valores será único en toda la tabla. Bendición o una maldición, un elemento con una especificación dada podrían tener valores de 0.99 y 1.00 -. Estos serían válidos
  2. Esta configuración permite una especificación que se asocia con 0+ artículos.

Otros consejos

acabo de terminar de contestar generación de tabla dinámica que describe un problema similar. Echar un vistazo a la de observación del patrón . Si reemplaza la "observación" por "especificaciones" y "sujeto" por "producto" se puede encontrar este modelo utilidad -. no necesitará de informe y Rep_mm_Obs tablas

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top