我在爲PostgreSQL項目創建模式時遇到問題。創建SQL模式(postgresql)
這是一個社交網站,如果有個人資料,每個個人資料都有三種類型:通用,教育和就業情況,因此每個個人資料都需要不同的屬性......我們如何在一個表中完成所有操作?
create type ProfileTypeValue as enum
('generic', 'education', 'employment');
create Profiles (
id integer
type ProfileTypeValue
....?
primary key (id)
);
,因爲例如,如果它是一個教育資料,然後我們需要有機構名稱等,或者如果它是一個就業的個人資料,那麼我們就需要有僱主的名字屬性等
是它最好只有3個不同的表格,每個配置文件1個類型,不知道這是否可能...但我覺得我需要有一個if語句說明它是否爲profile,包含這些屬性,或者如果它的配置文件包含這些屬性,等等
+1,非常好的答案。就個人而言,我會選擇2.選項3可以在Postgres中使用'hstore'數據類型來完成,這種數據類型非常高效,並且可以被索引。 – 2011-03-27 09:08:28
評論中的錯字:hstore用於選項4(鍵值存儲):http://www.postgresql.org/docs/9.0/static/hstore.html。 – 2011-03-27 09:18:44
@Aleski:你說得對。謝謝 – 2011-03-27 09:35:31