Должен ли я клонировать или денормализовать свою базу данных для портативного использования? - PullRequest
3 голосов
/ 05 февраля 2009

У меня есть база данных, которая содержит много данных и все "аккуратно", нормализовано (в пределах разумного - с помощью EAV), и у меня есть хранимые процедуры для доступа и изменения данных.

У меня также есть приложение WinForms, которое пользователи загружают для поиска и просмотра этих данных (без вставок). Для удобства использования и обновления я использую SQLite для хранения этих данных, и он работает очень хорошо.

Я работаю над обновлением всего процесса, и мне было интересно, следует ли мне использовать денормализованное представление данных для отправки пользователям, таблицу 1 со всеми свойствами в виде столбцов или продолжать использовать то же самое схема в качестве основной базы данных?

Мои первоначальные мысли совпадают с:

денормализованный вид: Выгоды... Предоставляет простой метод запроса данных (так как я не делаю много объединений, просто поиск столбцов.

Против ... Мне пришлось бы управлять вторым уровнем доступа к данным. Конечно, я не думаю, что это будет сложно, но это все еще немного больше работы.

Если будет добавлено новое свойство, мне придется снова изменить схему и учесть изменения. Когда я могу просто запросить пакет свойств и работать там.

Та же схема: За ... Такая же компоновка, что и у основной базы данных, поэтому обновления минимальны, и я даже могу использовать те же запросы при создании уровня доступа к данным, поскольку SQLite не поддерживает хранимые процедуры.

Cons ... Существует множество небольших таблиц для кодов поиска и тому подобного, поэтому я мог начать сталкиваться с проблемами при построении запросов и управлении ими в DAL.

Как мне поступить?

1 Ответ

4 голосов
/ 05 февраля 2009

Если вы разрабатываете свое приложение для запроса представлений данных, а не самих базовых данных, вы сможете хранить одну и ту же базу данных для обоих сценариев без каких-либо проблем или необходимости изменять свой DAL.

...