Re: [SQL ] 是否避免null值
#原文恕刪
以下是個人看法:
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
討論串 (同標題文章)
完整討論串 (本文為第 4 之 7 篇):