ERD階段PG建議

ER Model Tips
不同的資料庫系統有著不太相同的設計習慣, 在這篇記錄著使用 PostgreSQL 在進行 ER Model 時的建議與習慣.



於DB中設計記載所有Tables的ER對照表


盡可能避開大寫字母的使用

  • 在 PostgreSQL 中請盡可能不要使用大寫字母在 DB, Table, Field 的命名上, 若需則必須以 “雙引號“ 包覆命名. Ex. “ABC001“
  • 二個以上的單詞使用命名, 請以 底線符 _ 做為區隔. Ex.  student_room


命名原則上盡可能表達其目的

  • Table 名稱為 單數 詞組


Table中的PK欄位名稱只要簡單化-> id

  • 多餘的id欄位命名解釋是形同無意義的.


自動遞增+1的序列數欄位型別- serial

  • serial 算是一個 PostgreSQL 對其簡化產生一個自動遞增減的序列數的簡化, 就可以產生一個序列數型態的參考.



盡可能避開PG保留字的使用



在Table中內嵌日誌(Log)欄位

http://developer.postgresql.org/pgdocs/postgres/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT
http://developer.postgresql.org/pgdocs/postgres/functions-datetime.html

Example
CREATE TABLE time_date
(
  id bigint NOT NULL,
  now timestamp with time zone NOT NULL DEFAULT now( ),
  CONSTRAINT time_date_pkey PRIMARY KEY (id)
)