Ideal Esquema de banco de dados
-
12-12-2019 - |
Pergunta
Eu estou prestes a reformulação de um esquema de banco de dados e estou pensando em usar um ORM no meu app, seria o abaixo esquema de trabalho com, por exemplo, Eloqüente ORM, ou será que eu também tenho que adicionar as tabelas de junção bem?
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)
Solução
A única coisa que eu tinha, provavelmente, fazer de forma diferente, é ter o issue_id
chave estrangeira na issue_details
tabela de modo que você pode ter um um a um relação.
Então, se você estava usando Eloqüente que você poderia fazer algo assim.
echo $issue->details->name;
Eu não sou inteiramente certo o que você vai armazenar na tabela detalhes que, talvez haja vários detalhes para um problema em que caso você deseja ter uma muitos-para-muitos relação.
Outras dicas
Além de que Jason sugeriu, você também pode remover o category_id
do issues
uma vez que cada tabela type
já tem uma category
, você já tem acesso à categoria através do tipo.
i.e. $issue->type->category