Estrutura de banco de dados SQL para categorias personalizadas
-
06-07-2019 - |
Pergunta
Estou criando um site, blog on-line e para cada post, eu gostaria de ter o usuário ser capaz de criar / editar / apagar a sua própria categoria para que eles possam categorizar seu post.
O que é geralmente considerado um projeto de banco de dados bom para usuários categorias gerados?
Este é meu projeto tabela proposta. (Existe um nome para este tipo de db?)
user_table
user_id (pk), user_name
CATEGORY_TABLE
category_id (pk), category_name
USER_CATEGORIES
user_id (fk), category_id (fk)
Obrigado por ajudar. Estou confiante de que há um algum lugar post sobre isso, mas eu era incapaz de encontrá-lo. Se este é um joguete por favor me avise e eu irá remover esta questão.
Solução
Este é um de muitos para muitos relação. Isso permitiria que cada usuário, potencialmente, ter muitas categorias diferentes e cada categoria de potencialmente ter muitos usuários diferentes. Este parece ser um modelo útil para o que você está tentando fazer.
Outras dicas
Eu acho que sua aparência esquema bom. Você está mantendo os rótulos de categoria em uma tabela para evitará a duplicação e depois é só atribuir suas identificações para os usuários.
Se o que você está tentando fazer é ter categorias "privados" para cada usuário, então isso é bom. Se nas outras categorias mão é suposto ser público (sth como tags em stackoverflow), então você pode considerar uma outra opção - não armazenar usuário <-> relação de categoria, em vez adicionar use_counter campo para gatilhos mesa e usar de categoria para incrementá-lo quando categoria é a ser utilizado (entrada do blog é categorizado) ou diminuir quando é "libertado" (entrada do blog é excluído / sua categoria é removido). Quando o use_counter atinge 0 -. Remover a categoria