mysql序列化后存数组_Mysql存储序列化数组

我建议采用一种完全不同的方法来完全消除存储问题,并且应该使您的应用程序更有效率.存储序列化数组,其中包含可以从您的数据库中检索的信息,这是多余的,效率极低.这里最好的方法是规范化您的数据.

您应该创建第四个表,可能称为“region_categories”,它将是一个简单的查找表:

CREATE TABLE region_categories (

regionId int unsigned not null,

categoryId int unsigned not null,

PRIMARY KEY(regionId,categoryId)

);

现在,不是将所有内容保存到数组中,而是针对每个城镇/地区,您应该使用该城镇中的类别填充此表.您的数据量非常小,因为您存储的只是一对ID.

当需要检索给定区域的类别时,您只需运行一个简单的SELECT语句:

SELECT category.*

FROM region_categories AS rc LEFT JOIN categories AS c ON rc.categoryId=c.categoryId

WHERE rc.regionId=[whatever region you're dealing with]

现在,您可以遍历结果,并且您将拥有该区域的所有类别.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值