implementar herencia en tablas o no

Tengo una duda y ahora voy aprendiendo poco a poco por mi cuenta que es base de datos.

buenos resultados que tengo una tienda de computación al por menor y la tienda es en Atención Personal (Gerente, Administrador, vendedor y Soporte) y Clientes (naturales y legales), todos estos deben tener un nombre de usuario y contraseña tendrán privilegios de acceso (Usuario, Personal de servicio).

Como lo haría el diseño?. lo que quiero es administrar privilegios de acceso y así evitar alguna tabla de herencia, pero no si debe aplicar en mi caso o solo con Acceso, porque de una tabla que se llama PERSONA se alega y otra tabla que se llama VENTAS, si por ejemplo una persona es un el vendedor y otro miembro del personal es un usuario que comprará cualquier cosa en la mesa VENTA Quiero guardar los datos del personal del vendedor y las escaleras, y si solo tiene una mesa llamada PERSONA ¿Esa relación sería doble?, deberían ser dos de los FK ID PERSONA?

preguntado el 03 de mayo de 12 a las 17:05

bueno, si no le gusta el almacenamiento de datos redundantes, solo puede almacenar los datos esenciales por tabla y combinarlos con uniones. para facilitar que pueda usar vistas que pueden limpiar mucho si, por ejemplo, se usan uniones naturales para combinar las tablas. solo mis 2 centavos en eso :) -

1 Respuestas

En un buen modelo, tienes que pensar en relaciones infinito-1, infinito-infinito, 1-1. Entonces, un buen modelo debe ser:

  • cada tabla para un tipo de objeto (personas, ventas, etc.)
  • cada grupo de especie (administrador, vendedor, comprador, etc.)
  • si tiene tablas infinitas, debe crear una tabla para relaciones.

por ejemplo, para infinito-infinito (1 persona puede tener 1 o más tipos):

PERSONS
- Person_ID
- Firstname
- Lastname
- Address

WORK
-Work_ID
-Kind (Administrator, seller, etc)

REL_PERS_WORK
-Rel_Id
-Person_ID (from PERSONS table)
-Work_ID (from WORK table)

contestado el 03 de mayo de 12 a las 17:05

Y si dices, que si quiero que una persona tenga usuario y contraseña para acceder al sistema, que pondría en esa tabla, una tabla PERSONA o si tendría que crear otra tabla enlazada una a una con la tabla PERSONA - Celso Javier Guzmán

Depende si crees que una persona puede acceder con uno o más nombres de usuario. Es una buena idea normalizar las tablas, pero desnormalizar también es genial. Consultar una tabla es más rápido y efectivo que dos tablas. Para 1-1 y no es otra entidad, utilice la misma tabla. Tenga en cuenta también si en un futuro próximo dividirá esta información, por ejemplo, una tabla con nombre de usuario, contraseña, puntos, apodo, etc. etc. La idea principal es tratar de no repetir la información. - Leandro Bardelli

No hay una forma "buena" o una forma "mala". Depende de la flexibilidad de sus objetos y procedimientos efectivos. En otro caso, almaceno las contraseñas en un formato de encriptación MD5 (o cualquier método ONE-WAY) en una tabla separada que nunca consulto directamente desde el software, siempre desde un procedimiento almacenado. Y nunca consulto la contraseña, nunca la identificación. - Leandro Bardelli

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.