看板 Database 關於我們 聯絡資訊
#原文恕刪 以下是個人看法: 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