У меня есть PHP-приложение с несколькими клиентами, которое я написал. Это приложение имеет много объектов базы данных, как и любое другое приложение PHP. Но поскольку это приложение с несколькими клиентами, у меня разные требования клиентов каждый раз, когда мы на борту нового клиента. Есть пара общих объектов (или учетных записей), на которых размещается большая часть информации о клиенте. Но blmost, каждый раз, когда я хочу добавить нового клиента в базу данных, этому новому клиенту потребуется новый столбец в базах данных учетных записей, потому что они будут иметь уникальные данные. Существуют стандартные требуемые данные (например, account_name, status ......), но некоторые данные уникальны и обозначены как разные, основанные на типе бизнеса клиента.Как создать динамическое поле для базы данных с помощью PHP
В настоящее время, что я должен сделать, чтобы приспособить требование является
- Alter таблица счетов и добавить новый столбец вручную.
отредактировать PHP скрипт, где я отображать информацию об учетной записи и отображения содержимого поля, как так
если Эхо «Единый клиент Обязательное поле:» (пусто ($ строка [ «new_filed»])!) , $ Строки [ 'new_filed'];
Если поле доступно для редактирования, тогда я должен добавить правила в форму редактирования/добавления, чтобы выполнить проверку валидации данных перед сохранением.
Я пытаюсь создать инструмент переднего конца, который сделает это автоматически для меня. Таким образом, у меня может быть админ «не программист», перейдите к инструменту переднего плана и добавьте новое поле, и это поле будет отображаться в выбранном разделе выбранной страницы.
Из инструмента переднего конца я хочу сказать, что добавить пользовательское поле под названием «brand_c» и сделать его типом varchar (100). Затем на странице, называемой «account_info.php» в разделе «Другое», отобразите это поле с меткой «Бренд», только если клиент = «XYZ», поэтому, если данные принадлежат клиенту «ABC», не отображаются поскольку этот столбец является обычным для «XYZ».
Я понимаю, что это широкий вопрос, но то, что я ищу, - это любая помощь в том, как такая вещь может быть построена (должны были начаться?). Это то, что большая часть большого CRM делать «то есть. Microsoft CRM Dynamic, Salesforce.com ...) есть. Как я могу архитектор что-то вроде этого?
Спасибо
Посмотрите на сводные таблицы или EAV (сущность-атрибут-значение). Это то, что вы ищете. –
Загляните в [Хранилища с ключевыми значениями] (http://en.wikipedia.org/wiki/NoSQL#Key-value_stores) – kums
Другим способом вместо добавления столбцов (уникальных свойств для каждого клиента) было бы создание в отдельная таблица, дополнительные свойства для каждого клиента. Затем создайте фактические значения для каждого свойства клиентом. Затем, возможно, сформируйте представление для клиентов, которое включает соответствующие свойства. Неэффективен, но может помочь вам подумать об этом. –