Ver Mensaje Individual
  #9 (permalink)  
Antiguo 04/01/2017, 11:36
Avatar de NLeone
NLeone
 
Fecha de Ingreso: junio-2012
Ubicación: Buenos Aires.
Mensajes: 22
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: [CONSULTA] Sobre Diseño.

Cita:
Iniciado por Libras Ver Mensaje
Tienes 2 tablas con los mismos campos, eso esta mal para un modelo relacional, lo cual dice que tu base de datos no esta normalizada, ademas veo que tienes 8 campos repetidos en las tablas de persona_fisica, juridica,

las 2 tablas xlj_cliente_pf y xlj_cliente_pj, podrian quedar en una sola tabla usando los tipos que te menciono quedando

xlj_cliente
id
.....


Para persona fisica y juridica podriamos sacar una tabla para personas, con estos datos:

Personas
id
id_tipo
cuit
xlj_status_id
created_by
created_at
updated_by
updated_at
bloqueo
id_user_bloqueo
version



otra tabla para personas fisicas:

p_fisicas
id FK a personas con el id
num_documento
apellido
......


otra para personas juridicas
id FK a personas con el id
ingresos
razon
.....


Y por supuesto la tabla de tipos

Tipos
id_tipo
descripcion


Y al momento de hacer la factura, nada mas usarias el Id de la tabla personas, tienes el tipo para saber a que tipo corresponde
Libras! Entiendo lo que me dices. Es bueno el análisis, igualmente te cuento que esos campos:

xlj_status_id
created_by
created_at
updated_by
updated_at
bloqueo
id_user_bloqueo
version

Son de auditoria, son necesarios y requerimiento del cliente, y la base en general está normalizada, sino fijate en las relaciones con estado civil, genero, etc. Son fk de otras tablas que se han separado para que pueda estar normalizada.

Cada registro de la base de datos requiere de esos campos, por ejemplo version se utiliza para los bloqueos optimistas, lo trabajo con el framework Yii2 y ActiveRecord.

Pero ahora me cierra más y mejor el de poner una tabla principal PERSONA y de ahí relacionar las otras....

Muchas gracias!!!