嘿伙计们,我该怎么办呢。
我正在制作一本地址簿,我正在努力弄清楚如何解决我的团队问题。我让用户随意重命名他们的群组。但是这使我的生活变得复杂; 0
我有2张桌子。 groups
和contacts
这些组具有每个用户的组名。联系人有一个group
列,说明联系人条目属于哪个组。
如何从groups
表重命名组并让新名称反映在contacts
表中,以便所有内容都匹配?
答案 0 :(得分:5)
我建议改变你的模特
使用ID
作为主键和交叉表将联系人分配给组:
Groups
id
name
Contacts
id
name
Group_Contacts
group_id -> Groups.id
contact_id -> Contacts.id
现在,您可以随时更改群组名称,而无需更新联系人。
编辑:如果您只想获取某个群组的联系人,请使用类似以下的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'
答案 1 :(得分:1)
您还可以使用更新前触发器,该触发器首先重命名联系人表中的所有条目以匹配新名称,然后让更新继续进行