Esquema de base de datos óptimo
-
12-12-2019 - |
Pregunta
Estoy a punto de rediseñar un esquema de base de datos y estoy considerando usar un ORM en mi aplicación. ¿Funcionaría el siguiente esquema con, por ejemplo, Eloquent ORM, o también tendría que agregar las tablas JOIN?
ISSUES(ID, ORGANIZATION_ID, DATE, TIME, CATEGORY_ID, TYPE_ID, ISSUE_DETAILS_ID)
ISSUE_DETAILS(ID, NAME, STATUS, EMAIL)
ORGANIZATIONS(ID, NAME, ADDRESS, CONTACT)
CATEGORIES(ID, CATEGORY)
TYPES(ID, TYPE, CATEGORY_ID)
Solución
Lo único que probablemente haría diferente es tener la issue_id
clave externa en el issue_details
mesa para que puedas tener una cara a cara relación.
Entonces, si estuvieras usando Eloquent, podrías hacer algo como esto.
echo $issue->details->name;
Sin embargo, no estoy completamente seguro de qué almacenará en la tabla de detalles; tal vez haya varios detalles para un problema, en cuyo caso tendría un muchos a muchos relación.
Otros consejos
Además de lo que sugirió Jason, también puedes eliminar el category_id
desde el issues
tabla desde cada type
ya tiene un category
, ya tienes acceso a la categoría a través del tipo.
es decir. $issue->type->category