|
|
|
Внешние программы, БД и практика хранения в программе констант
|
|||
|---|---|---|---|
|
#18+
Внешние программы, БД и практика хранения в программе констант Сущность проблемы: Есть таблица Integer property – номер характеристики из таблицы характеристик Integer index – номер константы для заданной характеристики Varchar(200) name – строковое представление константы Это значит, что для характеристики с номером property есть ПРЕДОПРЕДЕЛЁННЫЙ список возможных значений – строковых констант. index определяет номер константы для заданной характеристики и только для неё, т.е. пара property и index является первичным ключом этой таблицы. Таблица нужна для того, чтобы пользователи могли выбирать значения только из списка, тем самым исключая двусмысленную трактовку и облегчая поиск данных. Большинство значений заранее известно, тем не менее этот список всё-таки будет время от времени расширяться, а возможно и модифицироваться (изменится условное обозначение или что-то в этом роде). Т.е это будут условно-постоянные значения, потому что либо пользователь ошибётся, а когда опомнится, то пройдёт уже много времени, либо изменится сама константа в силу уникальных (предметная область) причин. С использованием постоянных значений index нельзя разрешать редактирование этого поля – возможно случайное изменение и всё – программа работает некорректно. С удалением тоже проблема, даже если поле не счётчик, не факт, что пользователь установит нужное значение, после случайного удаления. Я пишу случайное, т.е. оно возможно очень редко, но его всё-таки надо предусмотреть. Не знаю насколько понятно, старался как мог ;) Вопросы: 1) Насколько «принята» практика использования числовых констант при обращении к таблицам БД (как в моём случае). Т.е. есть, скажем, две программы, которые заполняют базу. О константах они знают только по их номерам для нужной характеристики (в программе это enum – перечисление языка c++). Если изменить константу (поле index) в приведённой таблице, то результат импорта данных в БД будет куча неверных данных. 2) Если это «ненормально», то как выйти из ситуации? Я предложил использовать на уровне утилиты (пишут другие программисты) выгрузки данных в БД определять явно таблицу соответствия этих значений (храним в отдельном файле, а заполняем в программе обмена данными), но решение было не принято, т.к. предположили, что это неудобно для пользователя. Может, есть другое решение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 18:51 |
|
||
|
Внешние программы, БД и практика хранения в программе констант
|
|||
|---|---|---|---|
|
#18+
Тут недавно обсуждалась модель данных по Тенцеру http://actualthread.aspx?tid=246069&pg=1 Ваш случай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 23:56 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33559272&tid=1545408]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
42ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 187ms |
| total: | 281ms |

| 0 / 0 |
