Какой хороший способ реализовать переменное количество настраиваемых полей в CMS? - PullRequest
0 голосов
/ 01 апреля 2009

Реализация, используемая там, где я работаю, использует около 10 столбцов в таблице: CUSTOMFIELD1, CUSTOMFIELD2 и т. Д. И каждый раз, когда я смотрю на это, я думаю, что должен быть лучший способ.

Не все будут использовать все 10, некоторые будут использовать 0, и поэтому эти пустые столбцы просто смотрят на меня, прося, чтобы их использовали.

Так что, если есть лучший способ ... в идеале, я думаю, что это позволит:

  1. Более 10 пользовательских полей. Теоретически, бесконечно. Практически, что-то вменяемое, как 15.
  2. Каждому настраиваемому полю можно присвоить имя, установленное пользователем.
  3. Тип настраиваемых полей может быть установлен. Основные типы, такие как: строка и число.

Пока что я думаю о наличии столбца с именем CUSTOM_FIELDS, в котором будет храниться путь к файлу, содержащему описания, имена, типы настраиваемых полей и т. Д. В формате, таком как XML, JSON или YAML, который я мог бы преобразовать. обратно в объект. И это только определение пользовательского поля, весь вопрос в том, как сохранить контент, использующий эти пользовательские поля ...

В любом случае, это именно то, где мои мысли сейчас. Есть идеи?

PS --- Я думаю, что настройка приложения под пользователя будет более идеальной, чем добавление вещей в пользовательские поля, но у меня нет такой роскоши, а в других случаях определение дополнительных 2 пользовательских полей просто работы.

Ответы [ 2 ]

1 голос
/ 01 апреля 2009

Создать отдельную таблицу - CustomerFields со столбцами:

  • customer_id (int),
  • поле (varchar),
  • значение (varchar),
  • тип данных (varchar)

Теперь, найдя все записи с customer_id = 'CustomerID' в таблице CustomerFields, вы можете назначить столько переменных, сколько пожелаете. Единственное, что значение не является настоящим varchar, но может быть целым числом и должно быть проанализировано. Но я думаю, что это не такая большая проблема, учитывая, насколько проста эта схема

0 голосов
/ 01 апреля 2009

Не все будут использовать все 10, некоторые будут использовать 0, и поэтому эти пустые столбцы просто смотрят на меня, прося, чтобы их использовали.

Один быстрый совет: не нормализуйте и не денормализуйте базы данных, потому что вы должны прокрутить далеко в сторону и подумать: «Это очень важно», потому что это просто произвольное представление таблицы базы данных.

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