Комплексная база данных таблиц дизайна - PullRequest
0 голосов
/ 27 марта 2012

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

String, Целое число, Многозначный

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

parameter
---------
id | name

parameter_value
---------------
id | parameter_id(F.K) | value

Теперь к требованиям добавлен другой тип параметра. то есть «карта». Таким образом, параметр может быть картой. Карта может иметь другие параметры. У меня возникли проблемы при разработке таблиц базы данных в соответствии с этим новым требованием. Нужно ли создавать новые таблицы или изменять существующие? Использование IBM DB2.

1 Ответ

0 голосов
/ 27 марта 2012

Вы сказали, что «Параметры могут быть разных типов. То есть String, Integer, Multivalue». Но такие таблицы

parameter_value
---------------
id | parameter_id | value

может хранить только один тип, вероятно, какой-то тип varchar (n), где 'n' может быть действительно большим. Таким образом, параметры, которые должны быть целыми числами, могут в конечном итоге стать «виляющими».

Кроме того, «Многозначный» исторически не является реляционным типом данных или типом данных SQL. (Это меняется. Но изменения происходят медленно.) Некоторые платформы SQL поддерживают несколько видов нескольких значений, но поддержка далеко не универсальна. PostgreSQL, чтобы выбрать тот, с которым я довольно хорошо знаком, поддерживает массивы, JSON (я думаю, в последней версии) и пары ключ / значение (модуль hstore). Один из них может помочь вам. Я не уверен.

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