Ver Mensaje Individual
  #6 (permalink)  
Antiguo 11/08/2010, 02:23
harryp
 
Fecha de Ingreso: mayo-2008
Mensajes: 117
Antigüedad: 16 años, 6 meses
Puntos: 8
Respuesta: consulta rompecabezas

al final creo que se queda así...

Código MySQL:
Ver original
  1. create table titols (
  2.   nom varchar(60) not null,
  3.   descripcio varchar(160) not null,
  4.   primary key(id_titol),
  5.   unique(nom))
  6.  
  7.   create table formulari (
  8.   id_formulari integer auto_increment not null,
  9.   type_input varchar(30) not null,
  10.   variable varchar(30) not null,
  11.   contingut text,
  12.   primary key(id_formulari),
  13.   unique(variable))
  14.  
  15.  
  16.   create table options (
  17.   id_formulari integer not null,
  18.   opt varchar(50) default null,
  19.   primary key(id_option),
  20.   constraint fk_form_opt foreign key (id_formulari) references formulari(id_formulari)
  21.  
  22.   create table carregador(
  23.   id_titol integer not null,
  24.   ordre integer not null,
  25.   id_formulari integer not null,
  26.   primary key(id_titol,id_formulari),
  27.   constraint fk_carregador_formulari foreign key (id_formulari) references formulari(id_formulari)
  28.   constraint fk_carregador_titols foreign key (id_titol) references titols(id_titol)
  29.  
  30.   create table preus(
  31.   id_titol integer not null,
  32.   id_option integer null,
  33.   primary key(id_titol,id_option),
  34.   preu FLOAT (4,2) not null,
  35.   constraint fk_preus_options foreign key (id_option) references options(id_option)
  36.   constraint fk_preus_titols foreign key (id_titol) references titols(id_titol)

la idea es que por cada titulo (podríamos considerarlo como apartados independientes), puedo tener diferentes precios por cada option, por ejemplo 2 titulos que tengan en la tabla cargador formulari.variable==portada_plastificada, pueden o no tener el mismo valor en option ... como tengo al tabla tendre que repetir registros en la tabla preus(precios) con el mismo precio,mismo id_option, pero diferente id_titol...

como esta ahora, tendré que poner todos los registros de formulari en la tabla options obligatoriamente, y los registros que no requieran el campo de opt, tendran options.opt=null.(notese que e puesto default null)

Que tal este planteamiento?