作者johnny94 (32767)
看板Web_Design
标题[问题] 资料库存放常数
时间Mon May 18 23:44:04 2015
各位好,最近在开发 Web Application 的时,遇到一些问题,想请教要怎麽做会
比较好。就是我的 Database 中的某些 column 会存放字串,字串内容的变化是
固定的。
举例来说,我有一个 table 用来记录每天的课表,像这样:
科目 星期
[ 数学, 星期一 ]
[ 国语, 星期二 ]
[...]
[...]
[ 电脑, 星期四 ]
我想问的是,星期一 到 星期天 这七个字串,应该要怎麽存?
我目前能想出这些方法:
方法一:
直接存原始字串 (就像上面的例子一样)
方法二:
再开一个 table 预先存放这七个字串,要取用时就用 id 来 join 两个 table
举例如下:
科目 星期_id id 星期
[ 数学, 1 ] [ 1, 星期一 ]
[ 国语, 2 ] [ 2, 星期二 ]
[...] [ 3. 星期三 ]
[...] [ ..以此类推.. ]
[ 电脑, 4 ]
方法三:
不存在 database 中,直接以常数或 enum 的形式放在程式码里
举例如下:(以 pseudocode 表示)
const MONDAY = '1'
const TUESDAY = '2'
这时候存资料时直接拿这个常数来用,像这样:
save(数学, MONDAY) // [ 数学, 1 ]
(其实这里也衍生出一个问题,到底是要存放原始文字还是存代号,等到取出来再转换)
以上就是我的问题,如果有不清楚或觉得怪怪的地方,我再试着说更清楚,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 163.32.165.51
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Web_Design/M.1431963857.A.9EB.html
1F:→ iceblue7x: 以搜寻的效率2应该比较好 1的话可读性比较高 05/19 00:04
2F:→ GoalBased: 一和二其实要看状况而定,不过大多数状况下2比1好 05/19 12:40
3F:→ GoalBased: 至於三的话..我是会建议存到资料库 05/19 12:41
4F:→ GoalBased: 不然你就资料的角度来看,根本就不知道那个1到底是甚麽 05/19 12:41
5F:→ GoalBased: 这个资料就变成与你的程式强耦合(也就是你要有这支程式 05/19 12:42
6F:→ GoalBased: 才有办法了解资料的意义) 所以整体来讲会推荐2 05/19 12:42
7F:→ johnny94: 喔喔! 看来还是保存在资料库是比较好的作法,谢谢~ 05/19 16:13
8F:推 poiuy999: 请参考 资料库正规化 05/19 23:06