Я не могу решить, нужно ли нормализовать или денормализовать эту часть моей базы данных:Нормализовать или нет - один ко многим или много столбцов
У меня есть список из ~ 50 видов, которые либо присутствуют или отсутствуют в данном образце точка. Эти 50, возможно, будут расширяться до 75 в будущем, но не более того. Основной целью этой базы данных является создание отчетов. Так что, если в данной области 10 сайтов, средний вопрос будет: на сколько из этих сайтов мы обнаружили виды a?
Должен ли я создать 50 т/ф битовые столбцы:
сайт, а, б, в, г, д ... п
1, т, е, т, е, т, т ....
2, е, т, т, е, т, е .....
Или я должен создать один-ко-многим таблице:
1 с ...
2 б
2 гр ...
Я знаю, что тенденция к нормализации и 70 столбцов могут быть сложными для других пользователей, но мне очень нравится идея извлечение данных из денормализованной версии. Действительно ли в этом случае лучше?
Версия с колонками 50 - 75 не является денормализованной. Вы нормализуете данные, а не представление данных (boolean). Единственное преимущество, заключающееся в том, что каждый образец/вид в отдельной строке состоит в том, что вам не нужно создавать строки, которые являются ложными. Если у вас есть только 5 видов, присутствующих в выборке, у вас есть только 5 строк, а не 50. Если в выборке у вас в среднем 45 видов, нет никакого преимущества. –
Я бы пошел со второй альтернативой (таблица многих ко многим), так как это упростит использование агрегатных функций, например. если вы хотите подсчитать, сколько видов было записано на каждом участке. – reaanb