generalización dinámica

03/02/2005 - 14:00 por Tomás Hernández | Informe spam
Hola a todos,

Mi problema es que tengo q diseñar un modelo de base de datos que
gestione un almacén con diferentes productos (son 5 productos ahora). En la
aplicación que luego implementaré deberé pedir diferentes atributos
dependiendo del producto. Algunos de estos valores tendrán relación con
otras tablas y hay algun dato en común.

Yo aqui veo una generalización, es decir, la tabla productos con los
atributos comunes y luego una tabla para cada producto determinado. Mi
problema es que si dan de alta un nuevo producto tendríamos que crear una
tabla y las oportunas relaciones. Por tanto está solución no es correcta.

A alguien se le ocurre una forma elegante de hacer esto o no voy a tener más
remedio q crear una tabla por producto debido a la disparidad de los
atributos.

Saludos.

Preguntas similare

Leer las respuestas

#1 Tinoco
03/02/2005 - 14:21 | Informe spam
Hola Tomás,

Mi opinion es:

Crear una tabla por producto no es practico, vas a tener muchos problemas
mas adelante.

Te recomiendo crear una tabla con los productos y todos los
atributos(comunes y unicos) permitiendo el valor NULL en las columnas que no
son comunes.

Otra opcion puede ser crear la tabla de productos con los atributos comunes,
y otras tablas con los atributos unicos(agrupando los productos por clase),
relacionando estas tablas por el codigo del producto y una "Clase" de
producto.

Espero que me entiendas la idea y que te ayude en algo.

Hermilson Tinoco

"Tomás Hernández" wrote:

Hola a todos,

Mi problema es que tengo q diseñar un modelo de base de datos que
gestione un almacén con diferentes productos (son 5 productos ahora). En la
aplicación que luego implementaré deberé pedir diferentes atributos
dependiendo del producto. Algunos de estos valores tendrán relación con
otras tablas y hay algun dato en común.

Yo aqui veo una generalización, es decir, la tabla productos con los
atributos comunes y luego una tabla para cada producto determinado. Mi
problema es que si dan de alta un nuevo producto tendríamos que crear una
tabla y las oportunas relaciones. Por tanto está solución no es correcta.

A alguien se le ocurre una forma elegante de hacer esto o no voy a tener más
remedio q crear una tabla por producto debido a la disparidad de los
atributos.

Saludos.



Respuesta Responder a este mensaje
#2 Tomás Hernández
03/02/2005 - 14:36 | Informe spam
Agradezco tu rápida respuesta.

Bueno, te cuento, es q he simplificado el problema, pero te explico con
exactitud. En realidad tengo 5 familias de productos (aunq es como decir
tipos de productos). Y estoy contigo en q si en el futuro hay mas familias
téndría que crear más tablas y tendría problemas. Lo de los valores nulos es
a lo q me referia de elegante, esta es la opcion en caso de q no sea posible
de otra forma.

A lo mejor tengo q considerar que no se añadirán más familias de
productos en el futuro y si se añaden más productos habrá q incluirlos en
una familia, la q más se ajuste.

Si se te ocurre algo mejor??

Gracias.




"Tinoco" wrote in message
news:
Hola Tomás,

Mi opinion es:

Crear una tabla por producto no es practico, vas a tener muchos problemas
mas adelante.

Te recomiendo crear una tabla con los productos y todos los
atributos(comunes y unicos) permitiendo el valor NULL en las columnas que
no
son comunes.

Otra opcion puede ser crear la tabla de productos con los atributos
comunes,
y otras tablas con los atributos unicos(agrupando los productos por
clase),
relacionando estas tablas por el codigo del producto y una "Clase" de
producto.

Espero que me entiendas la idea y que te ayude en algo.

Hermilson Tinoco

"Tomás Hernández" wrote:

Hola a todos,

Mi problema es que tengo q diseñar un modelo de base de datos que
gestione un almacén con diferentes productos (son 5 productos ahora). En
la
aplicación que luego implementaré deberé pedir diferentes atributos
dependiendo del producto. Algunos de estos valores tendrán relación con
otras tablas y hay algun dato en común.

Yo aqui veo una generalización, es decir, la tabla productos con los
atributos comunes y luego una tabla para cada producto determinado. Mi
problema es que si dan de alta un nuevo producto tendríamos que crear una
tabla y las oportunas relaciones. Por tanto está solución no es
correcta.

A alguien se le ocurre una forma elegante de hacer esto o no voy a tener
más
remedio q crear una tabla por producto debido a la disparidad de los
atributos.

Saludos.



Respuesta Responder a este mensaje
#3 Tinoco
03/02/2005 - 14:57 | Informe spam
Tomás,

Una vez en una base de datos, se creo una tabla para "Propiedades tecnicas",
es una tabla que va relacionada al producto y que permite que el usuario en
una ventana incluya las nuevas propiedades y en la ventana del producto se
visualiza la lista de estas propiedades, disponibles para asignarles un
valor. Son tres tablas, algo como:

PRODUCTOS -< PROD_PROP >- PROPIEDADES_TEC

Hermilson T.

"Tomás Hernández" wrote:


Agradezco tu rápida respuesta.

Bueno, te cuento, es q he simplificado el problema, pero te explico con
exactitud. En realidad tengo 5 familias de productos (aunq es como decir
tipos de productos). Y estoy contigo en q si en el futuro hay mas familias
téndría que crear más tablas y tendría problemas. Lo de los valores nulos es
a lo q me referia de elegante, esta es la opcion en caso de q no sea posible
de otra forma.

A lo mejor tengo q considerar que no se añadirán más familias de
productos en el futuro y si se añaden más productos habrá q incluirlos en
una familia, la q más se ajuste.

Si se te ocurre algo mejor??

Gracias.




"Tinoco" wrote in message
news:
> Hola Tomás,
>
> Mi opinion es:
>
> Crear una tabla por producto no es practico, vas a tener muchos problemas
> mas adelante.
>
> Te recomiendo crear una tabla con los productos y todos los
> atributos(comunes y unicos) permitiendo el valor NULL en las columnas que
> no
> son comunes.
>
> Otra opcion puede ser crear la tabla de productos con los atributos
> comunes,
> y otras tablas con los atributos unicos(agrupando los productos por
> clase),
> relacionando estas tablas por el codigo del producto y una "Clase" de
> producto.
>
> Espero que me entiendas la idea y que te ayude en algo.
>
> Hermilson Tinoco
>
> "Tomás Hernández" wrote:
>
>> Hola a todos,
>>
>> Mi problema es que tengo q diseñar un modelo de base de datos que
>> gestione un almacén con diferentes productos (son 5 productos ahora). En
>> la
>> aplicación que luego implementaré deberé pedir diferentes atributos
>> dependiendo del producto. Algunos de estos valores tendrán relación con
>> otras tablas y hay algun dato en común.
>>
>> Yo aqui veo una generalización, es decir, la tabla productos con los
>> atributos comunes y luego una tabla para cada producto determinado. Mi
>> problema es que si dan de alta un nuevo producto tendríamos que crear una
>> tabla y las oportunas relaciones. Por tanto está solución no es
>> correcta.
>>
>> A alguien se le ocurre una forma elegante de hacer esto o no voy a tener
>> más
>> remedio q crear una tabla por producto debido a la disparidad de los
>> atributos.
>>
>> Saludos.
>>
>>
>>



Respuesta Responder a este mensaje
#4 Miguel Egea
03/02/2005 - 15:09 | Informe spam
Los campos nulos se inventaron para eso, puedes hacerlo así o hacer una
especialización de esos campos no obligatorios por familia, cuestión de
elegancia... quizá, cuestion de eficiencia no lo dudes, campos que admitan
nulos, muchos menos quebraderos de cabeza.


Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores
http://www.portalsql.com

(Quita el online si me tienes que mandar un correo)
"Tomás Hernández" escribió en el mensaje
news:

Agradezco tu rápida respuesta.

Bueno, te cuento, es q he simplificado el problema, pero te explico


con
exactitud. En realidad tengo 5 familias de productos (aunq es como decir
tipos de productos). Y estoy contigo en q si en el futuro hay mas familias
téndría que crear más tablas y tendría problemas. Lo de los valores nulos


es
a lo q me referia de elegante, esta es la opcion en caso de q no sea


posible
de otra forma.

A lo mejor tengo q considerar que no se añadirán más familias de
productos en el futuro y si se añaden más productos habrá q incluirlos en
una familia, la q más se ajuste.

Si se te ocurre algo mejor??

Gracias.




"Tinoco" wrote in message
news:
> Hola Tomás,
>
> Mi opinion es:
>
> Crear una tabla por producto no es practico, vas a tener muchos


problemas
> mas adelante.
>
> Te recomiendo crear una tabla con los productos y todos los
> atributos(comunes y unicos) permitiendo el valor NULL en las columnas


que
> no
> son comunes.
>
> Otra opcion puede ser crear la tabla de productos con los atributos
> comunes,
> y otras tablas con los atributos unicos(agrupando los productos por
> clase),
> relacionando estas tablas por el codigo del producto y una "Clase" de
> producto.
>
> Espero que me entiendas la idea y que te ayude en algo.
>
> Hermilson Tinoco
>
> "Tomás Hernández" wrote:
>
>> Hola a todos,
>>
>> Mi problema es que tengo q diseñar un modelo de base de datos que
>> gestione un almacén con diferentes productos (son 5 productos ahora).


En
>> la
>> aplicación que luego implementaré deberé pedir diferentes atributos
>> dependiendo del producto. Algunos de estos valores tendrán relación con
>> otras tablas y hay algun dato en común.
>>
>> Yo aqui veo una generalización, es decir, la tabla productos con los
>> atributos comunes y luego una tabla para cada producto determinado. Mi
>> problema es que si dan de alta un nuevo producto tendríamos que crear


una
>> tabla y las oportunas relaciones. Por tanto está solución no es
>> correcta.
>>
>> A alguien se le ocurre una forma elegante de hacer esto o no voy a


tener
>> más
>> remedio q crear una tabla por producto debido a la disparidad de los
>> atributos.
>>
>> Saludos.
>>
>>
>>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida