2013-12-11 45 views
0

我對postgres很新。基本上我想要做的是有一個表,其中每個條目基本上包含一個結構(在C語言中)或一個對象。如何使用pgAdmin在PostgreSQL中創建組合類型?

我相信這被稱爲複合型?無論如何,它本質上是這樣的(僞代碼):

user_name = { 
    my_int_value : 100, 
    my_string_value : "some string", 
    my_array  : (1, 2, 3, 4, 5, 6) 
} 

我正在使用pgAdmin來解決問題。

問題是,當我添加一個表,然後再添加一列,我看不出這似乎代表這樣的數據結構的任何數據類型。我認爲有一種複合型,基本上可以讓我這樣做。

我的主要目標是能夠通過pgAdmin的做到這一點,但如果這是根本不可能的,我是開放給其他的想法,去了解這樣做的最簡單的方法。

回答

1

設計似乎很奇怪 - 你應該正常化閱讀起來。

你首先需要爲了創造這樣一種類型,以便能夠使用它。我不使用pgAdmin,所以我不知道界面是什麼樣子,但是這樣做的SQL會是這樣的:

create type user_name as 
(
    my_int_value integer, 
    my_string_value text, 
    my_array int[] 
); 

create table foobar 
(
    id integer not null primary key, 
    some_column text, 
    the_name user_name 
); 

insert into foobar (id, some_column, the_name) 
values 
(1, 'foo', (1, 'bar', array[1,2,3])); 
相關問題