MYSQL仅对1列进行更新级联
我有以下模式:MYSQL仅对1列进行更新级联,mysql,Mysql,我有以下模式: tbl_tag --------|------ name count apple 2 orange 5 tbl_lookup_tag --------|--------- doc_id tag 1 apple 1 orange 2 apple foreign key (tag) references tbl_tag (nam
tbl_tag
--------|------
name count
apple 2
orange 5
tbl_lookup_tag
--------|---------
doc_id tag
1 apple
1 orange
2 apple
foreign key (tag) references tbl_tag (name)
on update cascade on delete cascade
我想要的是
tbl\u lookup\u tag.tag
仅在tbl\u tag.name
更改时更新,而不是在tbl\u tag.count
更改时更新。这可能吗 不按名称引用tbl_标记
-创建代理主键(整数,自动递增)并按其引用
在这种情况下,您可以重新命名您的标签,而无需担心和头痛
因此,您的新模式如下所示:
tbl_tag: id | name | count
^
|----------------|
v
tbl_lookup_tag: doc_id | tag_id
是的,但是我试图消除另一个
JOIN
…但是看起来我必须走这条路。@Justin B:为什么?如果您遇到任何性能问题,那么这已经是另一个故事,也可能是另一个问题。每个文档都有大约10个类似于标签的属性,每个属性都描述了特定的特性。每个属性需要2个表,因此需要2个联接…因此每个文档至少需要20个联接。不过对于分页来说还不错。我必须使用搜索索引器进行任何筛选。@Justin B:您可以在单独的查询中选择所有文档,在另一个查询中选择所有对应的标记。So-2查询任意数量的文档,无连接。