数据库怎样建表才能存一个相册

2014-07-24 11:06:41 +08:00
 dhnUphp
4207 次点击
所在节点    程序员
15 条回复
em70
2014-07-24 11:13:09 +08:00
不要把二进制数据放数据库里面,虽然可以,但性能很差。

常规做法是把图片文件地址存数据库,一个文本字段即可。
dhnUphp
2014-07-24 11:35:40 +08:00
@em70 我知道是存文件地址,问题是我现在一次性存一组照片,要的时候还要一次性取出来,数量不固定
wingoo
2014-07-24 11:37:02 +08:00
你自己需求都不说清楚
dong3580
2014-07-24 11:40:04 +08:00
@dhnUphp
这有什么关系呢?一次性查几条出来,一次性插入几条进去,数据库操作而已,不要把它联想成图片,数据库层面和文字是一样的,只不过拿出来数据之后在html中加的标签不一样,仅此。
shyrock
2014-07-24 11:43:51 +08:00
先说说你这个相册里面的照片想以什么数据结构保存吧,列表?树?最常用的访问方式是流动浏览?随机抽取?根据条件筛选?
rming
2014-07-24 11:54:05 +08:00
对照片先分类,然后保存啊
rming
2014-07-24 11:55:26 +08:00
photography 表 ,pid, photo ,cid
category 表 ,cid , name

CREATE TABLE photography(pid INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , photo VARCHAR(256) DEFAULT NULL ,cid INT(10) UNSIGNED DEFAULT NULL );

CREATE TABLE category(cid INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , name VARCHAR(256) DEFAULT NULL );

SELECT * FROM photography WHERE cid='123' LIMIT 15 OFFSET 0;

用外键cid来对主键pid进行分类。。。
tokune
2014-07-24 11:57:57 +08:00
加多个分组的字段就好了吧。

query量多少。。这个很好控制啊
MasterYoda
2014-07-24 12:53:44 +08:00
存数据库里对应的md5值,实体数据存memcache或者redis.
MasterYoda
2014-07-24 13:13:07 +08:00
@MasterYoda
其实一般是实体数据存小文件系统,用memcache做缓存啥的。数据库怎么建表不关键吧,分组字段搞好就行。
mufeng
2014-07-24 13:25:12 +08:00
多表联查
lovesky
2014-07-24 14:48:34 +08:00
@em70 我司全是数据库存图,性能不错哦,我觉得这要看你怎么用了。
muziyue
2014-07-24 15:02:12 +08:00
tag url id 个人用就ok了吧 实在强迫症就弄俩表
20150517
2014-07-24 15:02:57 +08:00
如果强调搜索或tags的大量图片,可以gridfs,如果图片不多,可以存文件系统cdn,会便宜些
mikej
2014-07-24 18:40:46 +08:00
json_encode(array('pic1_url', 'pic2_url'....)),然后存入db不就ok?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/124235

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX