【问题标题】:How do you get multiple addresses to one customer?您如何为一位客户获取多个地址?
【发布时间】:2012-12-04 21:11:33
【问题描述】:

例如,我无法弄清楚您如何为一位客户获取多个地址。关于如何实现这一点的任何想法?

谢谢

【问题讨论】:

  • 一个客户表,带有一个主键。地址的第二个表,具有第一个表的外键。 [即使这些术语对您来说意义不大,谷歌搜索它们并学习如何使用它们将构成您关系数据知识的基础。]
  • 我确实这样做了,但似乎不对,我不确定是否可以这样识别
  • 给出您认为无法以这种方式建模的示例数据。我们不介意阅读 ;) 使用两个表系统,许多地址可以引用同一个客户 => 每个客户有许多地址。

标签: database street-address


【解决方案1】:

在地址表中使用外键

CREATE TABLE Customers
(
C_Id int NOT NULL,
other_stuff whatever,
PRIMARY KEY (C_Id),
)

CREATE TABLE Addresses
(
 A_ID int NOT NULL,
 C_ID int NOT NULL,
 other_stuff whatever,
 FOREIGN KEY (C_Id) REFERENCES Customers(C_Id),
 PRIMARY KEY (A_ID)
)

这可用于实现一对多关系。

例如,如果您有 George CustomerC_ID=55,那么如果您想给 George 一个新地址,那么您将在地址表中插入一个值为 5 作为 C_ID 的条目。

insert into addresses (C_ID,blah,blah) values (55,blah,blah)

然后,如果您想获取 George 的所有地址,您会说:

select * from addresses where C_ID=55

如果这没有意义,这里有图片http://net.tutsplus.com/tutorials/databases/sql-for-beginners-part-3-database-relationships/

【讨论】:

  • 你真的应该给地址一个主键。
猜你喜欢
  • 2012-03-14
  • 2012-02-16
  • 2017-10-28
  • 2015-07-04
  • 2011-01-30
  • 2015-12-20
  • 2016-03-29
  • 1970-01-01
  • 2019-01-14
相关资源
最近更新 更多