Текущая ситуация в том, что темы сортируются по трем основным категориям. Существует потенциал добавить больше, чем только 3 категории, но более высокие взлеты хотят реализовать возможность добавлять более чем одну категорию к теме.Должен ли я сделать другую таблицу или просто использовать массивы? (Нормализовать или не нормализовать)
В моем первоначальном дизайне db есть идентификатор категорииID в качестве внешнего ключа в информационной таблице темы. Скорее всего, это была плохая идея с самого начала, но я полагал, что они были настроены только на 3 категории, и сделать это таким образом позволит меньше запросов.
Итак, из того, что я вижу, у меня есть два варианта: 1) Введите categoryID как строку, разделенную запятой, которую я разбираю на конце php. 2) Реструктурируйте БД и вытащите идентификатор категории в свою собственную таблицу categoryID и topicID.
Мне было интересно, что об этом думали все. Мой первый инстинкт заключался в реструктуризации базы данных. Но первый вариант, когда я думаю об этом, проще всего реализовать и наименее вероятно сломать что-то существующее, изменив db вокруг. Это также может привести к де-нормализации и открыть возможность несогласованности данных.
Я прочитал, что де-нормализация прекрасна, если вы согласны с тем, что у вас есть несогласованные данные в обмен на производительность. По вашему мнению, я получу много результатов в этом риске? Любой вклад в то, что я должен делать в этой ситуации, будет оценен по достоинству.
Спасибо за помощь,
Леви
Все хорошие моменты, третий из которых касается того, чтобы быть немасштабируемым, - это то, как я впервые столкнулся с этой проблемой с моим дизайном БД. – Levi
+1 Также сложнее выполнять различные агрегированные запросы, такие как подсчет, суммирование или усреднение значений в списке. –