用户重命名另一个表中的数据时的UPDATE列

时间:2010-10-12 08:21:15

标签: php sql mysql

嘿伙计们,我该怎么办呢。

我正在制作一本地址簿,我正在努力弄清楚如何解决我的团队问题。我让用户随意重命名他们的群组。但是这使我的生活变得复杂; 0

我有2张桌子。 groupscontacts这些组具有每个用户的组名。联系人有一个group列,说明联系人条目属于哪个组。

如何从groups表重命名组并让新名称反映在contacts表中,以便所有内容都匹配?

2 个答案:

答案 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)

您还可以使用更新前触发器,该触发器首先重命名联系人表中的所有条目以匹配新名称,然后让更新继续进行