作者alexcwtzeng (好饿~~)
看板Database
标题Re: [SQL ] 是否避免null值
时间Thu May 23 12:37:58 2013
#原文恕删
以下是个人看法:
1. NOT NULL 的使用完全按照 Entity Relation 来设计,并
不建议用以偏概全的方式来看待。
例如(用原PO的例子):
Table A Table B Table C
ColA1 PK NOT NULL ColB1 PK NOT NULL ColC1 PK NOT NULL
B_id FK NOT NULL
C_id FK NOT NULL
PS.首先 PK 一定要 NOT NULL,谁也不希望出现无主的忍者,肯定会出乱子。
Foreign Key 可以为 NULL 有以下考量:
1.1 A Relate to B 与 A Relate to C 为独立事件
如果为真:那可以将 NOT NULL 移除
1.2 A Relate to B 且 A Relate to C 为联合事件
如果为真:请留下 NOT NULL
2. 如果允许栏位 NULL
有人喜欢用 -1,有人喜欢用空白值(' '),有人喜欢用 99999.来代表【无资料】
这些都会造成前端的表现层需要用多余的判断来处理资料,
Oracle 本身也会有多余的 overhead,例如 index 就多了一堆的 -1,
个人是觉得浪费空间,等你有 1T 以上的资料,小小的动作就可以挽救很多
无谓的麻烦。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.125.179.204