2013-09-23 100 views
0

如何在TelephoneNo上插入多個值,因爲客戶端可能有多個電話號碼?在具有多個值的外鍵中插入表MS SQL

CREATE TABLE Telephone 
(TelephoneID tinyint Primary key, 
TelephoneNo int) 

和..

CREATE TABLE CLIENT 
(ClientID smallint Primary key, 
FName varchar(25), 
LName varchar(25), 
HomeAddress varchar(50), 
TelephoneID tinyint foreign key references Telephone(TelephoneID)) 

,以便它可以像這樣

ClientID | FName | LName | HomeAddress | TelephoneID 
C-01  Harry Sendon 1333 Cali. 1,2 
C-02  Pierre Ferrer 1515 LasV.  3 

TelephoneID | Telephone 
    1   7894561 
    2   8945612 
    3   7569696 

這就是我可以解釋查看。 xD

回答

0

我認爲這是錯誤的設置。目前,每個客戶端鏈接到一個電話ID。但是你想讓每個客戶有多個電話號碼。

我反而有:

CREATE TABLE Telephone 
(TelephoneID tinyint Primary key, 
ClientId smallint foreign key references CLIENT(ClientId), 
TelephoneNo int) 

CREATE TABLE CLIENT 
(ClientID smallint Primary key, 
FName varchar(25), 
LName varchar(25), 
HomeAddress varchar(50)) 

從這一點,可以很容易地看到電話條目如何多涉及到一個客戶端。

要從此做得到用戶詳細信息和電話號碼:

SELECT CLIENT.ClientID, CLIENT.FName, CLIENT.LName, 
    CLIENT.HomeAddress, Telephone.TELEPHONEID 
FROM CLIENT 
JOIN TELEPHONE ON Telephone.ClientId = CLIENT.ClientId 

要獲得電話ID作爲一個列表:

SELECT CLIENT.ClientID, CLIENT.FName, CLIENT.LName, 
    CLIENT.HomeAddress, GROUP_CONCAT(Telephone.TELEPHONEID) 
FROM CLIENT 
JOIN TELEPHONE ON Telephone.ClientId = CLIENT.ClientId 
GROUP BY Client.ClientId 
+0

@ 對不起,我把它說錯了。 你們都是正確的。我的不好:( 現在我想知道如何查看它是這樣的: ClientID | FName | LName | HomeAddress | TelephoneID C-01 Harry Sendon 1333 Cali。1,2 C-02 Pierre Ferrer 1515 LasV。 。3 在SQL中,這樣我可以設法在列表視圖中顯示VB它 –

+0

我編輯的答案,包括信息 – Hbcdev

+0

我試了一下,它只是重複了C-01:(( –

3

CREATE TABLE CLIENT (客戶端ID SMALLINT主鍵, FName varchar(25), LName varchar(25), HomeAddress varchar(50))

CREATE TABLE電話 (TelephoneID TINYINT主鍵, TelephoneNo INT, 的clientid SMALLINT外鍵引用客戶端(客戶端ID))

的ClientID | FName | LName | HomeAddress

C-01 Harry Sendon 1333 Cali。

C-02 Pierre Ferrer 1515 LasV。

TelephoneID |電話|客戶ID

1   7894561  C-01 
2   8945612  C-01 
3   7569696  C-02 
0

如果我以正確的方式瞭解您的問題,您希望能夠給客戶多個電話號碼。

你必須考慮你的表格結構。現在你有一個從電話到客戶的1到n關係。但是您需要從客戶端到電話的1到n關係爲客戶端提供多個電話號碼。

你的解決辦法是這樣的:

CREATE TABLE Telephone 
(TelephoneID tinyint Primary key, 
TelephoneNo int, 
ClientID smallint foreign key references CLIENT(ClientID)) 

CREATE TABLE CLIENT 
(ClientID smallint Primary key, 
FName varchar(25), 
LName varchar(25), 
HomeAddress varchar(50)) 

現在你可以給多個電話號碼的同一個客戶端。