2010-07-13 40 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