- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте. Имеется база данных пользователей. Пример: `id`, `name`, `group_id`.
Необходимо организовать возможность добавления произвольных дополнительных полей. Данную возможность я встречал только в DLE или MODx, точно не помню. Причем полям необходимо будет указывать параметры (обязательное/необязательное).
Помогите, пожалуйста, разобраться с теоретическим принципом данный реализации.
Я вижу это так - у пользователя создается еще 1 поле, например, `other` типа TEXT, в котором параметры будут хранится в формате JSON.
Быть может Вы сталкивались с данной реализацией и можете помочь советом?
Вариант - создаете еще одно поле в таблице и храните там все поля в каком-то сериализованном виде.
Другой вариант - отдельная таблица. Новое доп поле, создается новое поле в таблице. Связь например id пользователя.
Проблема в том, что необходимо изначально задавать также эти поля где-то, чтобы они появились у каждого пользователя в доп. полях.
Например, добавляю поле `возраст` - и оно появляется в форме добавления/редактировании пользователя.
Проблема в том, что необходимо изначально задавать также эти поля где-то, чтобы они появились у каждого пользователя в доп. полях.
Например, добавляю поле `возраст` - и оно появляется в форме добавления/редактировании пользователя.
У пользователя в настройках/личном кабинете (или при регистрации) будет возможность заполнять эти поля - заполнит, они будут появляться, не заполнит - останутся пустыми. Естественно отдельно у вас отдельная таблица с названием/настройками всех полей.
Другой вариант - отдельная таблица. Новое доп поле, создается новое поле в таблице. Связь например id пользователя.
Ещё вариант - по таблице на каждое поле.. при этом значение поля соответствует указанному типу (int|char ...)
+ таблица на ревизии (историю изменения значений) также на каждое поле..
rerighter, погуглите EAV
Советую изучить связку wp_posts и wp_postmeta в БД вордпрес.
Смысл в том, что в wp_posts задаётся 1 доп. индексное значение. В wp_postmeta оно дублируется и заносятся различного типа данные, а в нужный момент по этому индексному значению всё выцепливается:).
погуглите EAV
Первоначально тоже думали использовать на проекте, но потом решили использовать MongoDB для хранения произвольных полей. Через некоторое время и весь проект перевели на связку MongoDB + Sphinx.
У монго есть свои недостатки, но NoSQL-решения для таких все же более предназначены.
У монго есть свои недостатки, но NoSQL-решения для таких все же более предназначены.
Один из недостатков - не у каждого хостера найдёшь.. :) А в целом - штука удобная. Один шардинг-из-коробки чего стоит...
не у каждого хостера найдёшь.
это да. Но если проект свой, то это всегда можно взять ВДС, но тут уже выплывает другой момент - чем больше памяти тем для монги лучше :)
второй недостаток - монго лочит всю базу при записи. Обещают, что возможно будет подокументный лок к 2.6, но когда эта версия выйдет непонятно, точно не к концу этого года.