Tablas separadas Relaciones 1:1

Hola, estoy realizando el diseño de base de datos para un proceso de compra, mi duda es en cuanto a las relaciones de 1:1 debería dejar en una tabla o separarlas?, el proceso es el siguiente el cliente elige un producto, luego llena los datos personales (nombre, apellido, teléfono..), luego elige algunas preferencias en cuanto al producto, y por ultimo llena los datos para pago, haciendo el diseño de la base de datos me doy cuenta que todo es 1:1, es válido hacer una sola tabla para todo?

Respuesta
1

Creo que no entendiste muy bien el tema de las relaciones. En el caso que comentas, las relaciones no son 1:1, deberían ser 1 a varios (un cliente podrá comprar más de un producto, supongo)

Yo lo que haría sería una tabla para los clientes, otra para los productos y otra para las compras, que se relacionaría con las anteriores.

También podrías hacer otra para las distintas modalidades de pago, que se relacionaría también con la de compras.

Échale un vistazo a este artículo del experto Neckkito:

http://siliconproject.com.ar/neckkito/index.php/algunas-cosillas-teoricas/cosas-que-es-bueno-saber/estructurar-y-relacionar-una-bd

Muchas gracias por responder, entiendo su punto, pero en este caso hay 6 opciones de productos pero el cliente solo puede elegir uno, por eso me planteo solo una tabla "Pedido" que tendrá los campos PedidoID, ProductoID, NombreCliente, ApellidoCliente, TlfCliente...y Campos para el pago, por otra parte una tabla Productos (ProductoID,Descripcion, Precio...), para definir los productos ofrecidos, entonces sería 1 producto :n pedidos, solo quería saber si es valido dejar todo lo referente al pedido en una tabla, pues mi modelo ER así lo refleja.

Sí sería válido dejar todo lo referente al pedido en una tabla, pero yo le veo un inconveniente: si tus clientes se repiten, tendrás que escribir cada vez que haga un pedido los datos del mismo, con lo que tu BD se vuelve "menos eficiente". Aunque la relación sea 1:1, yo te seguiría recomendando una tabla de clientes, y en la tabla de pedidos, sustituyes los campos relativos a clientes por el IDCliente.

Luego, siempre puedes recuperar la información del cliente en el formulario de entrada de datos (en la web de Neckkito tienes un ejemplo de como hacerlo: "Captura información auxiliar en formulario") o por medio de consultas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas