豆瓣似乎是用字符串類型儲存電影年份的, 為什麼要這麼做?

2013-02-19 00:13:27 +08:00
 013231
豆瓣電影中, 絕大部分電影的年份是用數字表示的, 例如
http://movie.douban.com/subject/5308265/
電影名稱後的括號中寫著數字年份"2013". 但有極少數例外, 比如這個:
http://movie.douban.com/subject/20452327/
括號中寫著"2012年". 既然能出現"年"這個字, 想必年份數據是用某種字符串類型保存的囉? 為什麼要用字符串類型呢?
2257 次点击
所在节点    数据库
15 条回复
013231
2013-02-19 00:15:25 +08:00
@livid DB節點是否應放入"技術"分類下?
paloalto
2013-02-19 00:38:00 +08:00
猜测:
1.历史遗留问题?
2.为了和第三方的数据兼容?如IMDb,因为我记得豆瓣很多电影数据是从IMDb导过来的。
Livid
2013-02-19 00:39:39 +08:00
我这里看到括号里只有 2012…
Livid
2013-02-19 00:40:06 +08:00
@013231 已归入。
paloalto
2013-02-19 00:40:45 +08:00
@Livid 因为刚才我编辑了一下,把“年”去掉了。
myang
2013-02-19 00:41:00 +08:00
我这里点开lz的两个链接都没有“年”字啊
paloalto
2013-02-19 00:41:08 +08:00
Livid
2013-02-19 00:43:35 +08:00
这个 field 中如果变化不大的话,用 string 和用 int 的 index 效率差距不会太大。
manhere
2013-02-19 01:27:27 +08:00
年份为什么非得是数字?
sobigfish
2013-02-19 08:39:10 +08:00
@manhere 数字好排序 好校验啊
xupeng
2013-02-19 09:44:48 +08:00
因为条目的扩展属性不是存在强类型的关系数据库里的
chenz
2013-02-20 10:09:49 +08:00
@Livid

如果说到index(我不知道你所说的index是指单纯的建立索引,还是包括查询。我假设是两者),虽然应该具体到某个数据库软件我们才能谈论效率,但是一般情况下,两者效率当然会相差很大。

int是fixed-length,索引和查询的位移很快。年份这里目测是variable-length,索引和查询都会慢很多。即使假设"变化不大",也只是可以忽略索引速度而已,查询依然是有区别的。

如果你所说的index只是单纯指建立索引,而又假设"变化不大",那讨论这个没什么意义了。就好像在说一个网站如果请求量不大的话,ec2的micro和large差别不会太大

当然这里的年份应该是不作为一个index的
kenlen
2013-02-20 21:23:53 +08:00
很少人会用年份来检索电影吧
rekey
2013-02-21 22:50:50 +08:00
是因为需要用户编辑吧...有可能来一个1980年左右的呢..
upupxjg
2013-02-22 19:02:02 +08:00
谁知到在后台有没有做什么转换,一个正则啥的就能转成想要的格式了

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

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

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

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

© 2021 V2EX