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

php mysql - devo adicionar o campo category-name a uma tabela ou não?


Se você estiver medindo milissegundos e a E/S de disco do seu sistema não for extremamente lenta, a opção 2 produzirá um desempenho melhor. Mas , estamos falando de um ganho insignificante no tempo de execução. Como você já estará consultando o banco de dados para obter o item de notícias, seria altamente otimizado para obter apenas o nome da categoria ao mesmo tempo. Eu adicionaria uma tabela de mapeamento de category-name-id para nomes de categoria . E a juntar-se a isso ao obter notícias.

Do ponto de vista da flexibilidade e do ponto de vista de eliminar o maior número possível de fontes de erro, eu também seguiria minha ideia acima. Uma vez que adiciona flexibilidade ao seu sistema e mantém todos os seus dados em um só lugar. Alterar o nome de uma categoria exigiria editar uma coluna no banco de dados em vez de editar um arquivo de configuração php ou, se a opção 1 fosse usada, atualizar cada registro de notícias.

Então, meu melhor conselho, adicione uma tabela com category-name-id para nomes de categoria mapeamentos e, em seguida, os itens de notícias contêm o id da categoria a que pertencem.

Para desempenho, você pode armazenar em cache os dados recuperados sobre categorias existentes e outros dados para não precisar pesquisar o banco de dados para obter essas informações o tempo todo.

Por exemplo. Você pode, em vez de participar, obter todas as categorias da tabela de categorias que descrevi acima. Armazene-o em cache no aplicativo e obtenha-o somente quando o cache for invalidado. ou seja, ocorre um tempo limite ou os dados no banco de dados são manipulados.