У меня есть база данных, которая содержит много данных и все "аккуратно", нормализовано (в пределах разумного - с помощью EAV), и у меня есть хранимые процедуры для доступа и изменения данных.
У меня также есть приложение WinForms, которое пользователи загружают для поиска и просмотра этих данных (без вставок). Для удобства использования и обновления я использую SQLite для хранения этих данных, и он работает очень хорошо.
Я работаю над обновлением всего процесса, и мне было интересно, следует ли мне использовать денормализованное представление данных для отправки пользователям, таблицу 1 со всеми свойствами в виде столбцов или продолжать использовать то же самое схема в качестве основной базы данных?
Мои первоначальные мысли совпадают с:
денормализованный вид:
Выгоды...
Предоставляет простой метод запроса данных (так как я не делаю много объединений, просто поиск столбцов.
Против ...
Мне пришлось бы управлять вторым уровнем доступа к данным. Конечно, я не думаю, что это будет сложно, но это все еще немного больше работы.
Если будет добавлено новое свойство, мне придется снова изменить схему и учесть изменения. Когда я могу просто запросить пакет свойств и работать там.
Та же схема:
За ...
Такая же компоновка, что и у основной базы данных, поэтому обновления минимальны, и я даже могу использовать те же запросы при создании уровня доступа к данным, поскольку SQLite не поддерживает хранимые процедуры.
Cons ...
Существует множество небольших таблиц для кодов поиска и тому подобного, поэтому я мог начать сталкиваться с проблемами при построении запросов и управлении ими в DAL.
Как мне поступить?