powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Внешние программы, БД и практика хранения в программе констант
2 сообщений из 2, страница 1 из 1
Внешние программы, БД и практика хранения в программе констант
    #33559272
Андрей - он же дядя Сэм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Внешние программы, БД и практика хранения в программе констант

Сущность проблемы:

Есть таблица

Integer property – номер характеристики из таблицы характеристик
Integer index – номер константы для заданной характеристики
Varchar(200) name – строковое представление константы

Это значит, что для характеристики с номером property есть ПРЕДОПРЕДЕЛЁННЫЙ список возможных значений – строковых констант. index определяет номер константы для заданной характеристики и только для неё, т.е. пара property и index является первичным ключом этой таблицы.

Таблица нужна для того, чтобы пользователи могли выбирать значения только из списка, тем самым исключая двусмысленную трактовку и облегчая поиск данных. Большинство значений заранее известно, тем не менее этот список всё-таки будет время от времени расширяться, а возможно и модифицироваться (изменится условное обозначение или что-то в этом роде). Т.е это будут условно-постоянные значения, потому что либо пользователь ошибётся, а когда опомнится, то пройдёт уже много времени, либо изменится сама константа в силу уникальных (предметная область) причин. С использованием постоянных значений index нельзя разрешать редактирование этого поля – возможно случайное изменение и всё – программа работает некорректно. С удалением тоже проблема, даже если поле не счётчик, не факт, что пользователь установит нужное значение, после случайного удаления. Я пишу случайное, т.е. оно возможно очень редко, но его всё-таки надо предусмотреть.

Не знаю насколько понятно, старался как мог ;)

Вопросы:
1) Насколько «принята» практика использования числовых констант при обращении к таблицам БД (как в моём случае). Т.е. есть, скажем, две программы, которые заполняют базу. О константах они знают только по их номерам для нужной характеристики (в программе это enum – перечисление языка c++). Если изменить константу (поле index) в приведённой таблице, то результат импорта данных в БД будет куча неверных данных.
2) Если это «ненормально», то как выйти из ситуации? Я предложил использовать на уровне утилиты (пишут другие программисты) выгрузки данных в БД определять явно таблицу соответствия этих значений (храним в отдельном файле, а заполняем в программе обмена данными), но решение было не принято, т.к. предположили, что это неудобно для пользователя. Может, есть другое решение?
...
Рейтинг: 0 / 0
Внешние программы, БД и практика хранения в программе констант
    #33559599
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Тут недавно обсуждалась модель данных по Тенцеру
http://actualthread.aspx?tid=246069&pg=1
Ваш случай
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Внешние программы, БД и практика хранения в программе констант
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]