2010-07-13 39 views
0

alt text如何在Microsoft SQL中创建这样的表?

这是我到目前为止有:

create table rubro (
    id_rubro int primary key, 
    nombre_rubro nvarchar(150) 
) 
go 

create table cliente (
    id_cliente int primary key, 
    direccion nvarchar(400), 
    telefono int, 
    nit int 
) 
+0

创建一个像什么样的表?您根据ERD为四个表中的两个表提供了创建表语句...... – 2010-07-13 19:14:50

回答

2

你只需要创建缺失的两个表,并将其链接到cliente表:

create table natural (
    id_cliente int primary key, 
    nombre nvarchar(50), 
    app nvarchar(50), 
    apm nvarchar(50), 
    .... 
) 

alter table dbo.natural 
    add constraint fk_natural_cliente 
     foreign key(id_cliente) references dbo.cliente(id_cliente) 

和同为juridico表了。

在SQL Server中,这些只是三个常规表,通过外键约束链接。使用诸如实体框架之类的OR映射器,您可以将这些映射为.NET域模型中的后代类 - 但在数据库级别,这些只是三个常规表 - 对它们没有任何“魔力”......

1

如果我理解正确的图它是一种面向对象图,而不是一个关系图。 naturaljuridico是超类cliente的子类。

关系数据库中没有像继承这样的概念。当映射CLAS层次结构有几个共同的模式来使用:

他们都有自己独立的利弊。我建议你开始阅读这些。

+0

-1:面向对象的图不包含表示“主键”的“PK”。数据模型中的继承通过外键关系来演示,并且它们可以是自引用的。 – 2010-07-13 19:21:52

+0

@OMG小马,你说的关于PK的关系图是正确的,但他们通常没有继承标记,只是FK与基数的关系。对我来说,它看起来像是关系图和对象图之间的某种混合。 – 2010-07-13 19:33:32

+0

ERD约定是将儿童关系建模为向左和/或向下。箭头仅指示外键来自的父表。我更喜欢乌鸦英尺ERD自己... – 2010-07-13 19:37:50