Как мне создать настраиваемую таблицу контрольных списков для моей базы данных? - PullRequest
1 голос
/ 29 января 2011

Я работаю над моделью базы данных, и одной из областей, которые мне нужно решить, является таблица (-и) настраиваемых клиентом контрольных списков.В идеале клиент должен иметь набор предопределенных контрольных списков, которые я мог бы затем ввести в виде битовых столбцов.Увы, этого не произойдет.Клиенту нужна возможность добавлять и группировать контрольные списки, чтобы их можно было многократно использовать.

Я мог бы использовать модель типа EAV и использовать строки для «true / false», но я уже шел по этому пути раньше и предпочел быне повторяйте это путешествие.

Любые мысли или предложения приветствуются.Спасибо.

Ответы [ 3 ]

2 голосов
/ 29 января 2011

«Конфигурируемый клиент» почти всегда означает EAV. EAV хранит данные в порядке ... просто возвращение данных - вот в чем дело.

; -)

Другой ... несколько менее нежелательный подход - создавать общие столбцы. Ответ1 БИТ, Ответ2 БИТ, Ответ3 ...

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

Скажите, что первый контрольный список -

  • Газ в баке?
  • Деньги в кошельке?

Тогда храните

 CheckList_ID     Answer_Number     Column_Name
     1                 1              Tank has Gas
     1                 2              Wallet has Money.

Тогда вид будет:

 SELECT Answer1 "Tank has Gas", Answer2 "Wallet has Money"
  FROM Generic_Answer_Table
  WHERE CheckList_ID = 1

Очевидно, как представление будет генерироваться динамически.

Недостатком является то, что если вы включите 10 столбцов, они не могут иметь более 10 НИКОГДА.

XML - это еще одна возможность, и эта проблема не возникает ... однако она не так уж дружественна к SQL.

0 голосов
/ 16 января 2014

Мы строим http://tallyfy.com для этой цели, хотя прямая связь между действиями и таблицей вашей базы данных является чем-то новым.

0 голосов
/ 29 января 2011

Я думаю, что XML будет лучшим способом дать им контроль, к которому они стремятся, а также поддерживать динамические флажки.Может быть, XML-файл на страницу / раздел, который содержит все пользовательские флажки.Что хорошего в XML, так это то, что с ним легко работать и он дает вам большую гибкость.На уровне базы данных просто сохраните выходные данные флажков как окончательные данные, на случай, если в исходном XML-поле флажка изменятся, вы все равно увидите первоначально выбранные значения, сохраненные на уровне базы данных.

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