Нужно хранить в базе 2 поля: uid - user id, color_id - цвет. Каждый пользователь может выбрать несколько цветов. Но не иммет смысла делать записи в бд если пользователь опять выбрал цвет, который он уже выбирал. То есть комбинация uid+color_id должна быть уникальной. Как это сделать в друпале? Просто сделать по этим двум полям составной первичный ключ или наложить ограничения на поля? А может еще что?
Спасибо за помощь.
Комментарии
Опять же имеет ли тогда смысл добавлять авто инкремент в таблицу, где уже есть pk ?
Как правило, данная фраза означает, что человек с предметной областью не знаком совершенно и все свои проблемы списывает на друпал.
его
как правило делается это так: 'primary key' => array('nid','uid')
Я лишь хотел узнать у опытных друпалеров есть ли другой вариант(в частности наложения ограничений на поля именно в друпале) и ИМЕЕТ ЛИ СМЫСЛ ТОГДА ИСПОЛЬЗОВАТЬ AUTO INCREMENT. спасибо опытные друпалеры.
ну какой еще AUTO INCREMENT если у тебя определенный пользователь выбрал определенные цвета и эти определенные данные сохраняются?
Плюс, то, что старые записи удалять надо, ты это понимаешь?
А разве UPDATE не катит?
теперь понятно спасибо.
Auto increment имеет смысл делать, если планируете интеграцию с Views. Модуль Views составные ключи не жрет
update же старые ненужные записи не удалит.
Если бы таблица была вида:
пользователь|цвет|флаг_выбран_ли
тогда можно было бы и update-ом(по всем), а у него хранятся только выбранные.
Не вижу в описании, что пользователь может отменить выбор.... Впрочем да, поразмыслил, тут только добавление уникальных записей, а исправления старых не нужно...