Проектирование базы данных для традиционных ИИНИ-файловых данных с целостностью

Я хотел бы получить некоторые точки зрения на лучший способ справиться с ситуациями, когда у вас есть обычные (традиционные) данные базы данных и в то же время также есть данные, которые больше похожи на данные "ini-файла", и вы хотите сохранить целостность между ними (иерархические данные?).

Например, предположим, что у меня есть таблица "ВАЛЮТА" с 100 строками. В то же время у меня есть системная настройка для "валюты по умолчанию", и она должна отображаться на одну из этих 100 строк.

Прямо сейчас я бы сохранил код валюты по умолчанию в файле конфигурации XML, ini-файле или реестре Windows. Это хорошо для данных, но нужно немного поработать, чтобы убедиться, что значения в файле XML действительно соответствуют действительным значениям внешнего ключа в базе данных.

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

3 ответа

Может быть так, что таблица с 2 столбцами, ключом (или именем) и столбцом значений делает то, что вам нужно. Поместите ваши реляционные данные в нормализованные таблицы и данные типа 'config' в таблицу пар ключ / значение.

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

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

Другие вопросы по тегам