Как иметь динамический дизайн базы данных с динамическими значениями - PullRequest
1 голос
/ 13 января 2012

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

Ответы [ 3 ]

3 голосов
/ 13 января 2012

Как говорил Вируццо, все, что вам нужно сделать, это создать таблицу отношений, например:

**Table User**
int ID
String name

**Table CheckBoxOptions**
int ID
String description

**Table User-Checkbox-Relation**
int UserID
int CheckboxID
boolean value
int position

Затем все, что вам нужно сделать, это добавить одну запись в таблицу отношений для каждого параметра aданный пользователь имеет в своей форме.При чтении вы читаете таблицу отношений и ищите все записи, которые имеют желаемый ID пользователя.

Как предложил Аарон Дигулла, вы можете сохранить положение опции в User-Checkbox-Relation, используя полекак "int position" в моем примере.Таким образом, вы можете показывать параметры в том же порядке каждый раз, когда форма представлена.:)

0 голосов
/ 13 января 2012

Есть много способов решить эту проблему:

  1. Вы можете создать таблицу с USER_ID, POSITION, TEXT, STATUS, если каждый контрольный список отличается (т. Е. Когда нет смысла создавать таблицу для элементов в списке, потому что нет повторного использования)

  2. Если пользователи могут выбирать только из ограниченного набора опций для контрольных списков, то вы должны иметь таблицу для всех опций и создать таблицу с USER_ID, POSITION, OPTION_ID, STATUS

  3. Если вам всегда нужны все опции и вам не нужно искать записи по тексту или статусу, вы можете использовать собственную структуру данных и сохранить ее как BLOB-объект в базе данных. Преимущество: вы совершенно свободны в том, как работает структура и как она выглядит. Недостаток: лучше сделать это правильно с первого раза, потому что его перенос в новую структуру будет адом.

0 голосов
/ 13 января 2012

Создайте XML с вашими атрибутами и сохраните его в базе данных, затем получите его оттуда и проанализируйте ваши атрибуты или создайте поле типа массива и сохраните там вашу пару имя = значение.

Приветствия

...