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

buenas noches;

estoy implementando un presupuestador para mi web.. y el caso es que la mejor forma de veo de estructurarme es la siguiente:

titols(#id,^nom,...)
cont_form(#id,^variable,type_input,...)
form_select(#id,variable[fk-cont_form(variable)],opt,...)
cargador(id[fk-titols],variable[fk-cont_form(variable)],...)
precios(#id_titols[fk-titols(id)],#id_cont[fk-cont_form](id),#id_select[fk-form_select(id),PRECIO,...)

*leyenda
#primary key
^unique
campo[fk_tabla(campo)]

inserto titulos, esos titulos tienen en cargador una serie de registros, estos registros están obligatoriamente en la tabla cont_form , pero no necesariamente en la tabla form_select ya que form_select la uso solo para cuando el cont_form.type_input == select (en form_select tengo los diferentes opt que tienen los select que estoy creando, si fuese por ejemplo cont_form.type_input==text, no tendría ningún registro en esta tabla)
Cabe decir que en la tabla precios, el id_select se permite nulo(para poder poner registros que no estén en form_select[cont_form.type_input<>select], todo lo demás es not null.

una vez llegados a este punto, el problema que tengo es que para facilitar la escritura de la tabla precios(esta vacia), me gustaría que me regresara en una consulta(para hacerme un script que me facilite la tarea):
para todos los títulos, todos los registros de la tabla cargador, y si cont_form.type_input==select tendría que mostrar cada registro de la tabla cont_form referente al form_select.variable==cont_form.variable

resumen :
titols.nom,cont_form.variable,form_select.opt,prec ios.precio

lo mas cerca que creo que e estado es con...
Código:
select
t.nom,c.variable,s.opt from cont_form f
inner join form_select s on f.variable=s.variable
inner join carregador c on s.variable=c.variable
inner join titols t on t.id=c.id
order by t.id
pero si ago eso solo me devuelve los registros que están en la tabla form_select
Código:
form_select s on f.variable=s.variable
, los que no están, no son mostrados. Que la consulta si no me equivoco es correcta, lo que pasa es que necesito todos los campos de cont_form...

Si alguien que tuviera algo mas experiencia que yo en esto me echara una mano... lo agradecería.. :-p

pd:he obviado campos que creo que no eran necesarios para no marear mas.. por lo que igual parece que no es la mejor forma de hacerlo. Pido perdón por si no se entiende nada ... o por si se entiende demasiado (bucles de sobreinformación ) estoy abierto a todo tipo de sugerencias y criticas

Un saludo y gracias