【发布时间】:2011-10-05 16:12:44
【问题描述】:
我正在努力使用 postgreSQL,因为我不知道如何将 A 类型的一个实例链接到 B 类型的一组实例。我将举一个简短的例子:
假设我们要建立一个包含音乐专辑和人物的数据库,每个人都有一个他们最喜欢的专辑列表。我们可以这样定义类型:
CREATE TYPE album_t AS (
Artist VARCHAR(50),
Title VARCHAR(50)
);
CREATE TYPE person_t AS (
FirstName VARCHAR(50),
LastName VARCHAR(50),
FavAlbums album_t ARRAY[5]
);
现在我们要创建这些类型的表:
CREATE TABLE Person of person_t WITH OIDS;
CREATE TABLE Album of album_t WITH OIDS;
现在,由于我想让我的数据库尽可能地具有对象关系,我不想将专辑“对象”嵌套在 Person 表的 FavAlbums 行中,但我想“指向”中的条目表 Album,以便 n 个 Person 记录可以引用同一个 Album 记录,而不会一遍又一遍地重复。
我阅读了手册,但似乎缺少一些重要的示例,因为对象关系功能并未经常使用。我也熟悉关系模型,但我想为关系使用额外的表。
提前致谢! das_weezul
【问题讨论】:
-
您必须阅读有关关系而非对象关系的内容。
-
谢谢,但我想做的是 postgreSQL 支持的对象关系
-
对象关系不是面向对象的。我知道的唯一类似于 postgresql 中面向对象的事情是表继承。
-
您可以在 postgreSQL 中使用关系表来模拟对象行为,例如,这是使用 hibernate 等技术的方法。
标签: postgresql nested-attributes object-relational-model