我对postgres很新。基本上我要做的是有一个表,其中每个条目基本上包含一个结构(在C-parlance中)或一个对象。
我相信这被称为复合型?无论如何,它基本上就像这样(伪代码):
user_name = {
my_int_value : 100,
my_string_value : "some string",
my_array : (1, 2, 3, 4, 5, 6)
}
我正在使用pgAdmin来解决问题。
问题是,当我添加一个表然后去添加一个列时,我看不到任何似乎代表这种数据结构的数据类型。我认为有一种复合类型基本上让我这样做。
我的主要目标是能够通过pgAdmin做到这一点,但如果根本不可能,我会接受其他想法,以便采取最简单的方法。
答案 0 :(得分:1)
设计看起来非常奇怪 - 您可能应该阅读规范化。
首先需要创建这样的类型才能使用它。我不使用pgAdmin,所以我不知道UI是什么样的,但是这样做的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]));