relational_database vs config_file vs использование электронной таблицы

StackOverflow https://stackoverflow.com/questions/582911

Вопрос

Я уже слышал несколько подлинных аргументов в пользу использования реляционной базы данных вместо электронной таблицы.Реляционная база данных обеспечивает быструю отчетность и (условно говоря) надежное хранилище данных, в котором электронные таблицы имеют небольшой вес, быстро реплицируются и легко распространяются по организации для разных аудиторий.Хотя я замечаю преимущества любого из них, я редко могу отличить, что в каком сценарии лучше, и всегда в конечном итоге использую database.

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

Итак, каково ваше мнение о роли баз данных, конфигурационных файлов и электронных таблиц?

Это было полезно?

Решение

Старая пословица такова.

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

База данных предназначена для записей о бизнесе.Долговечный.Постоянный.

Другие файлы конфигурации предназначены для другой информации о конфигурации, а не для долговременных бизнес-записей.Текущие настройки и прочее не являются постоянными бизнес-записями, они являются частью конкретной конфигурации программного обеспечения, которое обрабатывает бизнес-записи.

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

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

Аналогично, если вы принимаете электронную таблицу для загрузки, вам приходится извлекать данные и никогда больше не возвращаться к (почти неконтролируемому) исходному документу.

Другие советы

Что касается меня, я хочу, чтобы все основные данные хранились в базе данных.Две причины:

  • чтобы разрешить adhoc reporting доступ к данным
  • чтобы разрешить приложениям обмениваться данными.

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

С другой стороны, конфигурационный файл должен содержать все "параметры", которые вы хотите изменить в системе;те, которые не меняются быстро (на лету).Элементы конфигурации являются гибкими, но нелегкими и обычно не из интерфейса.Если это параметр, который вы хотите, чтобы, возможно, изменил только программист, это должно быть прямо в коде (чтобы ни у кого другого не было доступа).

Если вы хотите поработать с интеллектуальным анализом данных, предоставьте какой-нибудь общий механизм для загрузки CSV-файла с результатами SQL-запроса непосредственно в Excel.Таким образом, люди могут работать со сводными таблицами без необходимости изменять схему приложения.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top