Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Critique meu projeto de banco de dados MySQL para campos dinâmicos ilimitados


Em OSCON ontem, Josh Berkus deu um bom tutorial sobre design de banco de dados, e ele gastou uma boa fração dele rasgando impiedosamente em tais "EAV "il tables; você poderá encontrar os slides dele no site da OSCON em breve e, eventualmente, a gravação de áudio de todo o tutorial on-line (o último provavelmente demorará um pouco).

Você precisará de uma junção por atributo (várias instâncias dos values table, um por atributo que você está buscando ou atualizando) então não sei o que você quer dizer com "menos tabelas de junção". Unir muitas instâncias da mesma tabela não é uma operação particularmente rápida, e seu design torna os índices quase inviáveis ​​e inutilizáveis.

Pelo menos como uma pequena melhoria, use tabelas separadas por tipo para os valores de seus atributos (talvez alguma indexação possa ser aplicável nesse caso, embora com a limitação do MySQL a um índice por consulta por tabela, mesmo que seja um pouco duvidoso).