如何在SQL中实现这三件简单的事情?

如何在SQL中实现这三件简单的事情?,sql,database,Sql,Database,我是一个绝对的SQL初学者,我已经用谷歌搜索了很多,但没有找到我需要的东西。那么我如何在SQL中实现(从ER模型翻译而来): 一个实体有一个可以有多个入口的Atribute(我已经找到了数组contstraint,但我不确定) 一种具有一个由多个心房组成的心房的实体(图:) 有点像isA关系。特别是总体/局部和间断特征 已经感谢了在Postgres中,您拥有这三项: create table one ( id integer primary key, tags text[] --

我是一个绝对的SQL初学者,我已经用谷歌搜索了很多,但没有找到我需要的东西。那么我如何在SQL中实现(从ER模型翻译而来):

  • 一个实体有一个可以有多个入口的Atribute(我已经找到了数组contstraint,但我不确定)
  • 一种具有一个由多个心房组成的心房的实体(图:)
  • 有点像isA关系。特别是总体/局部和间断特征

已经感谢了

在Postgres中,您拥有这三项:

create table one 
(
  id integer primary key, 
  tags text[] -- can store multiple tags in a single column
);
具有多个属性的单个列可以通过记录类型完成:

create type address as (number integer, street varchar(100), city varchar(100));

create table customer 
(
  id integer primary key, 
  name varchar(100) not null,
  billing_address address
);
isA关系可以使用继承来完成

create table paying_customer
(
   paid_at timestamp  not null,
   paid_amount decimal(14,2) not null
)
inherits (customer);

付款客户具有客户的所有属性以及发票付款的时间。

相关表是具有多个值的属性的替代(更通用、更标准)表示形式。@rd_nielsen:我将其描述为一对多关系(这通常是建模的方式。另外:数组是SQL标准的一部分(尽管语法略有不同)。“is a”关系也可以用不同的方式建模。