[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Добавление произвольных полей в БД
justyork
Всем привет. Хочу в одном проекте организовать добавление дополнительных полей. К примеру если в базе есть поля Имя, фамилия и я хочу чтобы была возможность с клиентской части добавлять еще поля, тел, емеил. Естественно должны быть поля которые нельзя удалять.
Кто-нибудь сталкивался с таким?



Спустя 4 часа, 12 минут, 26 секунд (5.10.2012 - 06:29) Игорь_Vasinsky написал(а):
сталкивался.

на клиенте добавляй в DOM элементы с нужными атрибутами (JS)
отлавливай всё в POST

и структура таблиц на мой взгляд

param

did | name
id | название параметра

data
did | value | uid
id параметра | значение | id пользователя


и через JOIN делать выборку

ИМХО - оптимальный вариант - т.к. расширяемость ни как не повлияет на построение запросов при формировании новых данных

Спустя 1 день, 6 часов, 35 минут, 18 секунд (6.10.2012 - 13:04) justyork написал(а):
А тип поля?

Спустя 18 минут, 11 секунд (6.10.2012 - 13:22) Arh написал(а):
А почему не создавать новые?
Сделать таблицу, в которую записывать имена созданных полей, при удалении соответственно разрешать удалять только те, которые были созданы, то есть которые зарегистрированные в таблице.

Спустя 2 минуты, 44 секунды (6.10.2012 - 13:25) Arh написал(а):

$db->exec("INSERT INTO `fields` (`fields_table`,`fields_name`,`fields_desc`) VALUES ('".$field."','".$name."','".$desc."')");
$db->exec("ALTER TABLE `".$field."` ADD `".$name."` $type($size) NULL ");


ну и удалять потом

$db->exec("ALTER TABLE `".$field."` DROP `".$del."`");
$db->exec("DELETE FROM `fields` WHERE `fields_table` = '".$field."' AND `fields_name` = '".$del."'");



Спустя 58 минут, 52 секунды (6.10.2012 - 14:24) justyork написал(а):
Цитата (Arh @ 6.10.2012 - 18:22)
А почему не создавать новые?
Сделать таблицу, в которую записывать имена созданных полей, при удалении соответственно разрешать удалять только те, которые были созданы, то есть которые зарегистрированные в таблице.

Сервис будет для разных пользоватлей, поэтому это не вариант

Спустя 4 дня, 42 минуты, 22 секунды (10.10.2012 - 15:06) Inavin написал(а):
Сделать новое поле в таблице, сериализовать в JSON то что шлет юзер и хранить все в дополнительном поле, как вариант
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.