Te voy a pasar las definiciones para las migraciones. A menos que detectes un error de severidad alta, no me respondas hasta que yo te avise de que haya terminado de dar toda la información, la cual daré en varios mensajes.
Entendido. No responderé a cada mensaje mientras vayas enviando las definiciones.
Solo interrumpiré si detecto un problema de severidad alta que haga inviable o muy riesgoso el diseño.
Cuando me indiques que terminaste de enviar toda la información, haré una revisión integral y te devolveré observaciones y, si corresponde, propuestas de mejora.
La tabla prestaciones queda definida de la siguiente manera:
¿Qué significa a, b y c? Significa:
a. Nombre del campo
b. Descripción/observaciones
c. Tipo de dato
CAMPO 1
a. id
b. código de prestación, que sea un string o un enum si lo permite mysql. PK
c. string o enum de strings
CAMPO 2
a. nombre
b. Nombre visible
c. varchar (60)
CAMPO 3
a. precio_base
b. Valor sugerido
c. moneda argentina con 2 decimales
CAMPO 4
a. timestamps de laravel
b. campos de uso estándar de Laravel
c. lo que corresponda
CAMPO 5
a. campo(s) necesario(s) para soft deletes
b. campos de uso estándar de Laravel
c. lo que corresponda
Entendido. Espero el resto de las definiciones. No haré comentarios mientras tanto, salvo que detecte un problema de severidad alta.
tabla: tratamiento_propuestas.
a. Campo
b. Observaciones
c. Tipo de dato
COLUMNA 1
a. id
b. PK
c. entero grande, o lo que corresponda a Blueprint::id
COLUMNA 2
a. numero
b. número visible de la propuesta
c. entero grande. no nulable
COLUMNA 3
a. paciente_id
b. FK pacientes
c. Lo que corresponda a Blueprint::id (lo utilizado para paciente). no nulable
COLUMNA 4
a. estado
b. el estado de la propuesta
c. Enum: EMITIDA, ACEPTADA, RECHAZADA. no nulable
COLUMNA 5
a. subtotal
b. el valor tal como figura en el catálogo de prestaciones
c. moneda argentina con 2 decimales. no nulable
COLUMNA 6
a. descuento_total
b. descuentos aplicados por el odontólogo en la confección de la propuesta
c. moneda argentina con 2 decimales. no nulable
COLUMNA 7
a. total
b. el precio después de aplicar los descuentos
c. moneda argentina con 2 decimales. no nulable
COLUMNA 8
a. emitida_at
b. fecha de emisión
c. fecha (y hora) no nulable
COLUMNA 9
a. respondida_at
b. fecha de respuesta
c. fecha (y hora). Sí nulable
COLUMNA(s) 10
a. timestamps de laravel
b. lo estándar de Laravel
c. lo convencional
COLUMNA(s) 11
campo(s) destinado(s) a soft deletes de laravel
b. lo estándar de laravel
c. lo convencional
Entendido. Continúo esperando el resto de las definiciones. No haré observaciones por el momento.
Tabla: tratamiento_propuesta_items.
a. Campo
b. Observaciones
c. Tipo de dato
CAMPO 1
a. id
b. PK
c. Lo único que sé es que se puede usar Blueprint::id
CAMPO 2
a. tratamiento_propuesta_id
b. FK
c. Lo único que sé es que la PK de la otra tabla se crea con Blueprint::id. No nulable
CAMPO 3
a. prestacion_id
b. FK
c. Lo único que sé es que la PK de la otra tabla es un string o un varchar, según ya he explicado. No nulable.
CAMPO 4
a. pieza
b. El número de pieza (ej.: 25 si es un adulto), o una pieza más/menos un desplazamiento si se refiere a un espacio que no está numerado (ej.: '65+1', es el espacio que está al lado de la pieza dental infantil 65)
c. varchar(4). No Nulable.
CAMPO 5
a. superficie
b. Superficie a la que se aplica el tratamiengto
c. char(1) o enum: DISTAL, MESIAL, LINGUAL, VESTIBULAR, OCLUSAL. nulable
CAMPO 6
a. cantidad
b. cantidad de veces que se aplica el tratamiento
c. numérico sin decimales entre 1 y 60, por decir algo.
CAMPO 7
a. precio_unitario
b. copia el valor del catálogo de prestaciones
c. moneda argentina con 2 decimales
CAMPO 8
a. descuento
b. valor del descuento aplicado por el odontólogo
c. moneda argentina con 2 decimales
CAMPO 9
a. importe
b. valor final con el descuento aplicado
c. moneda argentina con 2 decimales
CAMPO 10
a. observaciones
b. texto libre
c. texto largo nulable
CAMPO 11
a. timestamps de laravel
b. N/D
c. N/D (inferir)
CAMPO 12
c. soft deletes de laravel
b. N/D
c. N/D (inferir)
Entendido. Continúo esperando. Hasta el momento no detecté ningún problema de severidad alta que justifique interrumpirte.
Habrá un enum que será compartido como tipo de dato por el campo id de la tabla prestaciones y por el campo prestacion_id de la tabla tratamiento_propuesta_items. Enumerará los siguientes valores: protesis, implante, extraccion, obturacion-pendiente, obturacion-realizada, ortodoncia, perno-corona, tratamiento-conducto.
Entendido. Sigo esperando el resto de las definiciones. Hasta este punto no veo ningún problema de severidad alta que requiera interrumpirte.
Habrá los siguientes índices:
Para la tabla prestaciones, nada.
Para la tabla tratamiento_propuesta, índice compuesto por numero y paciente_id.
Para la tabla tratamiento_propuesta, un índice para campo emitida_at y otro para respondida_at.
Para la tabla tratamiento_propuesta, un índice para el campo estado.
Para la tabla tratamiento_propuesta_items, un índice para el campo tratamiento_propuesta_id, y otro índice para prestacion_id.
Recibido. Sigo esperando. No detecto ningún problema de severidad alta en lo enviado hasta ahora.
No hay comentarios:
Publicar un comentario