首頁 >後端開發 >php教程 >mysql缺少外键约束的时候,如何合理的更新两张相关联的表?

mysql缺少外键约束的时候,如何合理的更新两张相关联的表?

WBOY
WBOY原創
2016-06-06 20:43:461165瀏覽

我有一个需求大概是这样的:

有一张文章表和一张类别表,文章表有一个cat_id关联类别表。这里,mysql那一层没有做外键约束。在这种情况下,每次创建文章表的时候,一般大家会怎么处理这里cat_id的?

我的几个方案:
1、去查一次类别表,如果不存在这个类别,就不让更新。(优化版:如果类别条数不多,直接放在内存备查,或者使用缓存)
2、根本不去管这个类别有没存在。

更新:
1、是做一个论坛系统,用户可以发表文章,而类别主要由运维的人员创建。

回复内容:

我有一个需求大概是这样的:

有一张文章表和一张类别表,文章表有一个cat_id关联类别表。这里,mysql那一层没有做外键约束。在这种情况下,每次创建文章表的时候,一般大家会怎么处理这里cat_id的?

我的几个方案:
1、去查一次类别表,如果不存在这个类别,就不让更新。(优化版:如果类别条数不多,直接放在内存备查,或者使用缓存)
2、根本不去管这个类别有没存在。

更新:
1、是做一个论坛系统,用户可以发表文章,而类别主要由运维的人员创建。

我一般都是用第二种的 直接忽略

如果业务上对数据的严谨性要求很高 当然还是第一种
如果要求不是很高 第二种就可以了
    首先在保存到库中时,前面的业务一般都会保证这个id是有源可循的;
    再次即使这个id对应的类别不存在或者以后这个类别被删除时没做级联删除,最终效果也不过是在查询这个类别是找不到数据,通常和把这个id置空效果接近

如你的第一个方案,查一下类别表,类别一般不会太大,大可以使用cache

1.去查一次类别表如果没有的话,键值弄成 0 插入文章
2.显示的时候弄给未分类类别(也就是键值为 0 的文章)

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn