Я просто ищу лучший способ структурировать таблицы MySQL. Допустим, у меня есть таблица для CAMPAIGNS, и я хочу автоматически сгенерировать ФОРМУ на основе полей (например, FirstName, LastName, Email, Phone).
Но я хочу сделать эти поля редактируемыми, добавлять больше полей и т. Д. Через бэкэнд.
Лучше ли иметь 2-ую таблицу, которая управляет полями, связанными с CAMPAIGN 1, или иметь возможность редактировать этот MySQL TABLE direct?
Если бы я использовал 2-ю таблицу FIELDS, я мог бы извлечь все поля из FIELDS, где кампания = ‘2’, показать их, отсортировать и т. Д.
Или просто отредактируйте таблицу напрямую, отредактируйте / добавьте / удалите поля напрямую в таблицу MySQL.
Будет ли использование 2-й таблицы для управления полями усложнять все остальное? (например, Экспорт, а не просто таблица php-> mysql-> export, мне нужно запускать JOIN и т. д.).
Что все остальные делают в эти дни, особенно для управления кампаниями / полями, создания форм и т. Д. Каковы основные отличия от использования этих двух методов?
Любой вклад приветствуется,
Спасибо
JT
Никогда не позволяйте программе редактировать таблицы напрямую (единственное исключение — это, конечно, создание и изменение временных таблиц).
Особенно не думайте ни миллисекунды о пользователе, который пишет имя столбца.
Вы должны определить два класса полей в вашей таблице. Поля, которые изменяют способ работы с данными (эти поля важны для бизнеса), а также поля, которые являются главными.
Если вы напишите релевантные для бизнеса поля в дополнительной структуре ключ-значение, у вас возникнут проблемы, когда вам придется идентифицировать эти значения. Поэтому мой совет: сделайте в этих полях фиксированные столбцы таблицы. И попытаться создать как можно больше фиксированных столбцов таблицы, я имею в виду попытаться идентифицировать основной информационный набор «КАМПАНИИ». Эти поля будут жестко запрограммированы в вашей форме, но вы можете сделать их скрытыми, я имею в виду, что вы все равно можете дать пользователю возможность отключить некоторые из них для своих нужд. Другие поля, которые вы должны украсить:
Других решений пока нет …