2010-10-12 2 views
0

Эй, ребята, как я занимаюсь этим.Столбец UPDATE, когда пользователь переименовывает данные из другой таблицы

У меня есть адресная книга, которую я делаю, и я пытаюсь понять, как бороться с моими группами. Я позволяю пользователям переименовывать свои группы по своему усмотрению. Но тогда это усложняет мою жизнь; 0

У меня есть 2 стола. groups и contacts группы имеют имена групп для каждого пользователя. контакты имеют столбец group, в котором указывается, к какой группе принадлежит контакт.

Как я могу переименовать группу из таблицы groups и иметь новое название в таблице contacts, чтобы все соответствовало?

ответ

5

Я бы предложил изменить вашу модель. в качестве первичных ключей
Используйте ID с и пересечение стол для назначения контактов по группам:

Groups 
id 
name 

Contacts 
id 
name 

Group_Contacts 
group_id -> Groups.id 
contact_id -> Contacts.id 

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


EDIT: Если вы хотите, чтобы получить контакты определенной группы, используйте ВЫБРАТЬ как это один:

Select c.name 
From groups g 
Join group_contacts gc On (gc.group_id = g.id) 
Join contacts c On (c.id = gc.contact_id) 
Where g.name = 'Your group name' 
+0

hmm Я вижу, можете ли вы дать мне быстрый сценарий php/sql, как я мог бы начать настройку PLS;) – Eli

+0

@ s2xi: Это было бы трудно, не зная, что именно вы r проблем. Пожалуйста, постарайтесь настроить его самостоятельно и не стесняйтесь задавать другой вопрос, как только вы застряли ... –

+0

хорошо нормально, возможно, мне просто нужен намек/толчок в правильном направлении. Когда я запрашиваю базу данных, чтобы получить имена групп, я бы запросил таблицу групп правильно? чтобы получить список контактов, я бы запросил таблицу контактов правильно? если бы я хотел ТОЛЬКО получать контакты, относящиеся к определенной группе, что бы я запросил? – Eli

1

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

Смежные вопросы