所以我想顯示一個用戶的國家或國家下拉菜單。在數據庫中存儲與數值相關的標籤或文本:一個好的設計?
比方說,我有一個用戶表:
CREATE TABLE users
(
"id" serial, --PK
"name" character varying,
...
"country" integer --FK
);
國家是rerefences「items_country」表
CREATE TABLE items_countries
(
"id" integer, --PK
"text_en" character varying,
"continent" integer --FK to table "items_continent"
);
我總是設計我的數據庫的PK「ID」列的外鍵這樣:我的一些應用程序需要接近100種「物品」。
對於具有非常大的一組值的項目,我會創建自己的數據庫表(「items_countries」)並將其他項分組在一個巨大的「項目」表中。
這種方法讓我的客戶感到滿意,他們需要通過數據庫基於Web的管理來更改標籤或在其工作特定項目中添加值。但考慮到大多數這些項目永遠不會改變(國家,性別......),是否值得將它們存儲在數據庫中?
靜態數組方法呢?優點:減少數據庫表的數量,缺點:沒有外鍵,沒有刪除級聯/驗證。
這不是性能問題,因爲這兩種方法都可能導致緩存,而是數據庫/應用程序設計問題。
這是什麼方法?