首页 / MYSQL / Mysql存储序列化数组
Mysql存储序列化数组
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mysql存储序列化数组,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1474字,纯文字阅读大概需要3分钟。
内容图文
![Mysql存储序列化数组](/upload/InfoBanner/zyjiaocheng/909/08a1fc4561c240b5a4e6ef76d2a5e4ea.jpg)
我有3个表:
>区域表有1500个城镇.
>分类表有1800个类别.
>包含企业的公司表.
我需要做的是抓住一个城镇,例如Br??imingham并列在一个阵列中,哪些类别的企业使用我们的主要公司表,所以我们没有任何类别存储在阵列中没有业务的Brimingham.
我遇到的问题是存储的数组的大小,当我用序列化数组填充所有城镇时,我甚至无法打开表格进行浏览.见下面的数组示例:
a:9:{s:8:“法警”; s:1:“1”; s:20:“商务顾问”; s:1:“1”; s:25:“Car Garages and Mechanics”; s :1:“1”; s:35:“养殖牲畜和其他动物”; s:1:“2”; s:19:“时尚配饰”; s:1:“1”; s:6:“酒店“; s:1:”1“; s:20:”邮局服务“; s:1:”1“; s:13:”学校国家“; s:1:”1“; s:14:”木工匠“; s:1:”1“;}
有谁能建议替代解决方案?
干杯
解决方法:
我建议采用一种完全不同的方法来完全消除存储问题,并且应该使您的应用程序更有效率.存储序列化数组,其中包含可以从您的数据库中检索的信息,这是多余的,效率极低.这里最好的方法是规范化您的数据.
您应该创建第四个表,可能称为“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]
现在,您可以遍历结果,并且您将拥有该区域的所有类别.
内容总结
以上是互联网集市为您收集整理的Mysql存储序列化数组全部内容,希望文章能够帮你解决Mysql存储序列化数组所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。