MySQL / Lead Management / Campaign — Структура

Я просто ищу лучший способ структурировать таблицы MySQL. Допустим, у меня есть таблица для CAMPAIGNS, и я хочу автоматически сгенерировать ФОРМУ на основе полей (например, FirstName, LastName, Email, Phone).

Но я хочу сделать эти поля редактируемыми, добавлять больше полей и т. Д. Через бэкэнд.

Лучше ли иметь 2-ую таблицу, которая управляет полями, связанными с CAMPAIGN 1, или иметь возможность редактировать этот MySQL TABLE direct?

Если бы я использовал 2-ю таблицу FIELDS, я мог бы извлечь все поля из FIELDS, где кампания = ‘2’, показать их, отсортировать и т. Д.

Или просто отредактируйте таблицу напрямую, отредактируйте / добавьте / удалите поля напрямую в таблицу MySQL.

Будет ли использование 2-й таблицы для управления полями усложнять все остальное? (например, Экспорт, а не просто таблица php-> mysql-> export, мне нужно запускать JOIN и т. д.).

Что все остальные делают в эти дни, особенно для управления кампаниями / полями, создания форм и т. Д. Каковы основные отличия от использования этих двух методов?

Любой вклад приветствуется,
Спасибо
JT

0

Решение

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

Особенно не думайте ни миллисекунды о пользователе, который пишет имя столбца.

Вы должны определить два класса полей в вашей таблице. Поля, которые изменяют способ работы с данными (эти поля важны для бизнеса), а также поля, которые являются главными.

Если вы напишите релевантные для бизнеса поля в дополнительной структуре ключ-значение, у вас возникнут проблемы, когда вам придется идентифицировать эти значения. Поэтому мой совет: сделайте в этих полях фиксированные столбцы таблицы. И попытаться создать как можно больше фиксированных столбцов таблицы, я имею в виду попытаться идентифицировать основной информационный набор «КАМПАНИИ». Эти поля будут жестко запрограммированы в вашей форме, но вы можете сделать их скрытыми, я имею в виду, что вы все равно можете дать пользователю возможность отключить некоторые из них для своих нужд. Другие поля, которые вы должны украсить:

  • Я бы,
  • ссылка на CAMPAIGN,
  • возможно ярлык-NAME (программно-ориентированный)
  • читаемый пользователем (интернационализированный)
    • имя и
    • описание,
  • базовый тип данных (который вы можете прочитать в вашей программе, например INT и STRING или даже EMAIL),
  • может быть, тип HTML, класс и стиль тоже, а также правило проверки.
1

Другие решения

Других решений пока нет …