php – 更好的替代mysql中的逗号分隔字段
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 更好的替代mysql中的逗号分隔字段,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1525字,纯文字阅读大概需要3分钟。
内容图文
![php – 更好的替代mysql中的逗号分隔字段](/upload/InfoBanner/zyjiaocheng/898/61afac0eea9b407a9bf17d14fea1aafa.jpg)
在我的应用程序中,每当用户上传壁纸时,我需要将该壁纸裁剪成
3种不同的尺寸,并将所有这些路径(裁剪图像的3条路径和原始上传壁纸的1条路径)存储到我的数据库中.
我还需要存储原始壁纸(由用户上传的一个)的tinyurl.
在解决上述问题的同时,我提出了以下表格结构.
CREATE TABLE `wallpapermaster` (
`wallpaperid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`userid` bigint(20) NOT NULL,
`wallpaperloc` varchar(100) NOT NULL,
`wallpapertitle` varchar(50) NOT NULL,
`wallpaperstatus` tinyint(4) DEFAULT '0' COMMENT '0-Waiting,1-approved,2-disapproved',
`tinyurl` varchar(40) NOT NULL
) ENGINE=MyISAM
wallpaperloc是一个逗号分隔字段,由原始壁纸位置和所有裁剪实例的位置组成.
我知道在关系数据库的世界中使用逗号分隔的字段被认为是一个糟糕的设计,所以你想建议一些其他整洁有效的方法吗?
解决方法:
在wallpapermaster和位置表之间使用1:n关系.
像这样的东西:
CREATE TABLE wallpapermaster (
wallpaperid int unsigned NOT NULL AUTO_INCREMENT,
userid bigint NOT NULL,
wallpaperloc varchar(100) NOT NULL,
wallpapertitle varchar(50) NOT NULL,
wallpaperstatus tinyint DEFAULT '0' COMMENT '0-Waiting,1-approved,2-disapproved',
primary key (wallpaperid)
) ENGINE=InnoDB;
CREATE TABLE wallpaperlocation (
wallpaperid int unsigned NOT NULL,
location varchar(100) NOT NULL,
tinyurl varchar(40),
constraint fk_loc_wp
foreign key (wallpaperid)
references wallpapermaster (wallpaperid),
primary key (wallpaperid, location)
) ENGINE=InnoDB;
wallpaperlocation中的主键确保无法插入相同的位置两次.
请注意,int(10)不定义任何数据类型约束.它仅仅是客户端应用程序的提示,指示该数字具有多少位数.
内容总结
以上是互联网集市为您收集整理的php – 更好的替代mysql中的逗号分隔字段全部内容,希望文章能够帮你解决php – 更好的替代mysql中的逗号分隔字段所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。