Разделение дизайна базы данных - PullRequest
1 голос
/ 18 июля 2010

Я работаю над веб-проектом .NET с серверной частью SQL Server.Существует основная часть базы данных, которая заполнена данными о запасах.Эти данные ежедневно загружаются загрузочным приложением.

Эти данные должны оставаться только для чтения на веб-сайте.Под этим я подразумеваю, что я не хочу, чтобы веб-разработчик изменял таблицы, относящиеся к биржевым данным, и при этом я не хочу, чтобы они записывали данные в эти таблицы, так как это будет заменяться ежедневным обновлением.

Очевидно, что веб-сайту потребуется много таблиц, таких как аутентификация, администратор и т. Д., И в некоторых случаях они должны позволять пользователю манипулировать данными запаса для выполнения таких операций, как => ГУГ должен отображатьфондовое название 'UsersGoogleStock Inc.'вместо сохраненного ежедневно загружаемого имени «Google Inc.».

У меня вопрос, нужно ли мне две отдельные базы данных?Один для моих данных только для чтения и второй для специфики сайта?

Ответы [ 5 ]

3 голосов
/ 18 июля 2010

Нет, у вас должна быть одна база данных. Аутентификация (обычно имя пользователя / пароль), используемая Веб-сайтом, должна просто иметь соответствующую безопасность для контроля того, что он может читать и писать.

2 голосов
/ 18 июля 2010

Все три ответа, приведенные до сих пор, были против.

Чтобы добавить точку к обсуждению, есть скромное преимущество в производительности для установки базы данных для чтения только из-за уменьшенногоблокировка накладных расходов.

0 голосов
/ 20 июля 2010

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

Если оба нуждаются в одинаковом режиме восстановления, они могут находиться в одной базе данных, и вы можете задать запрос таблиц таким образом, чтобы разработчики не имели прав на них.Конечно, ваши разработчики не должны иметь права что-либо изменять в производстве.Только dba, специалист по настройке или менеджер должны содействовать производственным изменениям.

0 голосов
/ 18 июля 2010

Вы можете предоставить или удержать необходимые привилегии для INSERT, UPDATE или DELETE для каждой таблицы, поэтому вам не нужна отдельная база данных.Вы можете создать более одной схемы в одной и той же базе данных, чтобы всем программистам было ясно, что они могут обновить, а что нет.

См. Документацию GRANT или REVOKE для любой базы данных.выбрать.

0 голосов
/ 18 июля 2010

Должны ли я иметь две отдельные базы данных?

Никогда.

Просто скажите веб-разработчикам, что обновлять и что они не могут обновлять. Не соединяйте простую социальную проблему с ненужной технической сложностью. Поговори с ними. Объясни правила. Это проще, чем любая другая альтернатива, и в конечном итоге успешнее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...