说我有一列定义为地址。另外,我有一个记录,我们称之为鲁迪的。现在Rudy's有多个地址,所以我需要包含多个地址,以便它们都可以搜索。在SQL中处理解决方案的最佳方法是什么?将多个值添加到sql
0
A
回答
2
你应该添加一个地址列的子表。地址存储在子表中时,您将拥有一对多关系。您可以根据需要为每个用户添加尽可能多的地址。你也可以添加额外的信息,如地址类型(家庭,工作或小学,中学等)。
我不会去一列地址。如果这是一个邮政地址,最好有更多的专栏,如街道,城镇,门牌号码等。那么你可以在你的列上使用索引。
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
当然,你可以把它复杂,只要你想,然后按照以前的建议,用于存储地址类型等
这可能有助于MS下载来自http://sqlserversamples.codeplex.com/的示例并遵循其最佳做法。
相关问题
- 1. 将多个值添加到一列
- 2. 通过PHP向多个列添加多个值到SQL
- 3. 将多个数组值添加到单个值中
- 4. 批量将引号添加到SQL值
- 5. SQL:将别名添加到列值
- 6. 多个值添加到一个数组
- 7. 将多个值添加到数组时遇到问题
- 8. 如何将多个值添加到同一个阵列
- 9. 将多个值添加到perl hash中的同一个键
- 10. 如何将多个OldDbParameters值添加到单个OleDbCommand?
- 11. 将多个值添加到对象中的某个键js
- 12. 如何将一组多个值添加到一个键?
- 13. 将值添加到Parent时,将值添加到子MVC
- 14. 如何将多个python变量添加到SQL数据库?
- 15. 如何将多个命名参数添加到SQL语句中?
- 16. 如何将多个记录从gridview添加到SQL Server表中?
- 17. 将列添加到SQL Server
- 18. 将单个sql字段中的值添加到数组中
- 19. 将多个AdView添加到ListView
- 20. 将多个文件添加到WebRequest
- 21. 试图将多个JPanel添加到JFrame
- 22. 将多个组添加到SignalR ASP.NET
- 23. 将多个文本添加到AVMutableVideoComposition中
- 24. 将多个模型添加到inlineformset_factory
- 25. 将多个数据添加到ggplot?
- 26. 将多个组件添加到Jframe.getcontentpane()
- 27. HtmlTextWriter - 将多个类添加到标记
- 28. 将多个PDF添加到HTML中
- 29. 将多个UIButtons添加到UIView
- 30. 将多个域添加到aws云端
知道这个很好的教程? – scifirocket 2010-11-07 22:51:41
@scifirocket - 阅读关于关系数据库和数据库规范化:http://en.wikipedia.org/wiki/Database_normalization。你也可以在YouTube上找到一些不错的例子。 – Novitzky 2010-11-08 00:47:31