Estou construindo um aplicativo da Web que mostra o conteúdo de nutrientes dos alimentos.
Meus dados atualmente estão armazenados em uma foods
tabela, onde cada nutriente é uma coluna com um valor numérico, por exemplo:
nome | sódio | potássio | ... |
---|---|---|---|
Pão, ciabatta | 350 | 152 |
No entanto, isso significa que tenho que codificar o nome do nutriente (por exemplo, "Sódio") e a unidade (por exemplo, "mg") na minha aplicação. Eu preferiria que isso viesse do banco de dados também, no que imagino que seria algum tipo de tabela de definição fixa, por exemplo:
Eu iria | nome | unidade |
---|---|---|
"N / D" | "Sódio" | "mg" |
"K" | "Potássio" | "mg" |
Eu queria ver se havia uma maneira melhor de referenciar as definições, do que criando mais colunas na foods
tabela, por exemplo:
... | sódio | valor_sódio | sal | valor_sal | ... |
---|---|---|---|---|---|
"N / D" | 350 | "SAL" | 152 |
Então eu ingenuamente implementei o seguinte:
No entanto noto muita repetição na food_nutrients
tabela ou seja ~30 linhas de valores de nutrientes para cada alimento e me pergunto se a) isso é um problema em um banco de dados com uma quantidade crescente de alimentos, eb) se existe um modelo mais apropriado que alguém com mais experiência poderia sugerir?
Seu design com a
food_nutrients
mesa é perfeito, não o altere.É claro que haverá duplicatas, pois muitas receitas exigirão uma colher de sopa de sal. Essa é uma repetição inerente aos seus dados e nada mal – afinal, você está modelando uma realidade repetitiva. Acredito que qualquer tentativa de se livrar da duplicação complicaria e pioraria o modelo de dados.