Эй, ребята, как я это делаю.
У меня есть адресная книга, которую я делаю, и я пытаюсь понять, как бороться с моими группами. Я позволяю пользователям переименовывать свои группы по своему усмотрению. Но тогда это усложняет мою жизнь; 0
У меня есть 2 таблицы. groups
и contacts
группы имеют имена групп для каждого пользователя. контакты имеют столбец group
, который указывает, к какой группе принадлежит контакт.
Как можно переименовать группу из таблицы groups
и отобразить новое имя в таблице contacts
, чтобы все соответствовало?
Я бы предложил изменить вашу модель.
Используйте ID
в качестве первичных ключей и таблицу пересечений для назначения ваших контактов группам:
Groups
id
name
Contacts
id
name
Group_Contacts
group_id -> Groups.id
contact_id -> Contacts.id
Теперь вы можете изменять имя группы, когда захотите, без обновления контактов.
EDIT. Если вы хотите только получить контакты определенной группы, используйте SELECT, как этот:
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'
Вы также можете использовать триггер перед обновлением, который сначала переименовывает все записи в таблице контактов в соответствии с новым именем, а затем позволяет обновлять обновление