database архитектура

Главные вкладки

Аватар пользователя skiller_07 skiller_07 3 декабря 2010 в 13:31

Нужно хранить в базе 2 поля: uid - user id, color_id - цвет. Каждый пользователь может выбрать несколько цветов. Но не иммет смысла делать записи в бд если пользователь опять выбрал цвет, который он уже выбирал. То есть комбинация uid+color_id должна быть уникальной. Как это сделать в друпале? Просто сделать по этим двум полям составной первичный ключ или наложить ограничения на поля? А может еще что?

Спасибо за помощь.

Комментарии

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 3 декабря 2010 в 13:46

"skiller_07" wrote:
Как это сделать в друпале

Как правило, данная фраза означает, что человек с предметной областью не знаком совершенно и все свои проблемы списывает на друпал.

Аватар пользователя skiller_07 skiller_07 3 декабря 2010 в 14:32

как правило делается это так: 'primary key' => array('nid','uid')

Я лишь хотел узнать у опытных друпалеров есть ли другой вариант(в частности наложения ограничений на поля именно в друпале) и ИМЕЕТ ЛИ СМЫСЛ ТОГДА ИСПОЛЬЗОВАТЬ AUTO INCREMENT. спасибо опытные друпалеры.

Аватар пользователя natbampo natbampo 3 декабря 2010 в 14:47

"skiller_07" wrote:
ИМЕЕТ ЛИ СМЫСЛ ТОГДА ИСПОЛЬЗОВАТЬ AUTO INCREMENT.

ну какой еще AUTO INCREMENT если у тебя определенный пользователь выбрал определенные цвета и эти определенные данные сохраняются?
Плюс, то, что старые записи удалять надо, ты это понимаешь?

Аватар пользователя Crea Crea 3 декабря 2010 в 15:31

Auto increment имеет смысл делать, если планируете интеграцию с Views. Модуль Views составные ключи не жрет Smile

Аватар пользователя natbampo natbampo 3 декабря 2010 в 16:03

"Softovick" wrote:
А разве UPDATE не катит?

update же старые ненужные записи не удалит.
Если бы таблица была вида:
пользователь|цвет|флаг_выбран_ли
тогда можно было бы и update-ом(по всем), а у него хранятся только выбранные.

Аватар пользователя Softovick Softovick 3 декабря 2010 в 16:10

natbampo wrote:
"Softovick" wrote:
А разве UPDATE не катит?

update же старые ненужные записи не удалит.
Если бы таблица была вида:
пользователь|цвет|флаг_выбран_ли
тогда можно было бы и update-ом(по всем), а у него хранятся только выбранные.

Не вижу в описании, что пользователь может отменить выбор.... Впрочем да, поразмыслил, тут только добавление уникальных записей, а исправления старых не нужно...