向sql添加多个值

时间:2010-11-07 22:13:43

标签: sql record

说我有一个列定义为地址。另外,我有一个记录,让我们称之为鲁迪。现在Rudy有多个地址,所以我需要包含多个地址,以便它们都是可搜索的。在SQL中使用解决方案的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

您应该添加一个带有地址列的子表。您将拥有一对多关系,其中地址存储在子表中。您可以根据需要为每个用户添加任意​​数量的地址。您还可以添加额外的信息,如地址类型(家庭,工作或主要,次要等)

我不会去一列地址。如果这是一个邮政地址,最好有更多的列,如街道,城镇,门牌号等。然后,您可以在列上使用索引。

答案 1 :(得分:1)

您可以尝试这样的事情:

CREATE TABLE [dbo].[Person](
[PersonId] [int] IDENTITY(1,1) NOT NULL,
[FullName] [varchar](50) NULL,
CONSTRAINT [PK_Person] PRIMARY KEY CLUSTERED ([PersonId] ASC))
GO

CREATE TABLE [dbo].[Addresses](
[AddressId] [int] IDENTITY(1,1) NOT NULL,
[PersonId] [int] NOT NULL,
[AddressLine1] [varchar](50) NULL,
[AddressLine2] [varchar](50) NULL,
[City] [varchar](50) NULL,
[State] [varchar](4) NULL,
[Country] [varchar](50) NULL,
CONSTRAINT [PK_Addresses] PRIMARY KEY CLUSTERED ([AddressId] ASC))
GO

ALTER TABLE [dbo].[Addresses]  
WITH CHECK ADD  CONSTRAINT [FK_Addresses_Person] FOREIGN KEY([PersonId]) 
REFERENCES [dbo].[Person] ([PersonId])
GO

ALTER TABLE [dbo].[Addresses] CHECK CONSTRAINT [FK_Addresses_Person]
GO

当然,您可以根据需要使用它,并遵循以前的建议来存储地址类型等。

http://sqlserversamples.codeplex.com/下载MS示例并遵循其最佳做法可能会有所帮助。