0

由于客户可能有多个电话号码,我如何在 TelephoneNo 上插入多个值?

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

4

3 回答 3

3

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

CREATE TABLE Telephone (TelephoneID tinyint Primary key, TelephoneNo int, ClientID smallint 外键引用 CLIENT(ClientID))

客户ID | 姓名 | 姓名 | 家庭地址

C-01 哈里森登 1333 卡利。

C-02 皮埃尔·费雷尔 1515 LasV。

电话号码 | 电话 | 客户编号

1          7894561     C-01
2          8945612     C-01
3          7569696     C-02
于 2013-09-23T11:05:09.030 回答
0

我认为这是错误的设置。目前,每个客户都链接到一个电话号码。但是你想让每个客户都有多个电话号码。

我会改为:

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
于 2013-09-23T11:03:04.563 回答
0

如果我以正确的方式理解您的问题,您希望能够为客户提供多个电话号码。

你必须考虑你的表结构。现在你有一个从电话到客户的 1 到 n 关系。但是您需要从 CLIENT 到 Telephone 的 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))

现在您可以为多个电话号码指定相同的 ClientID。

于 2013-09-23T11:13:50.793 回答