相关疑难解决方法(0)

世界上所有地址都有共同的街道地址数据库设计吗?

我是一名程序员,说实话,不知道世界的街道地址结构,我的国家是如何构建的:)所以哪个是存储街道地址的最佳和常见的数据库设计?它应该是如此简单易用,快速查询和动态存储世界上所有街道地址,只需一个ID识别非常
感谢

sql database-design postal-code street-address

116
推荐指数
6
解决办法
7万
查看次数

使用整数列将美国邮政编码存储在数据库中是一个好主意吗?

乍一看,我认为在数据库表中存储邮政编码有两个基本选择:

  1. 文本(可能是最常见的),即char(5)varchar(9)支持+4扩展
  2. 数字,即32位整数

如果我们假设没有国际问题,两者都将满足数据的要求.在过去,我们通常只是走了文本路线,但我想知道是否有人做相反的事情?只是简单的比较看起来整数方法有两个明显的优点:

  • 通过它的性质,它仅仅自动限于数字(而没有验证,文本样式可以存储字母,据我所知,这些字母在邮政编码中无效).这并不意味着我们可以/将/应该放弃正常验证用户输入!
  • 它占用的空间更少,为4个字节(即使对于9位邮政编码也应该足够),而不是5或9个字节.

而且,它似乎不会对显示输出造成太大影响.打一个ToString()数值,使用简单的字符串操作来插入连字符或空格或其他任何+4扩展名都是微不足道的,并使用字符串格式来恢复前导零.

是否有什么可以阻止使用int仅限美国邮政编码的数据类型?

database database-design types postal-code street-address

51
推荐指数
6
解决办法
4万
查看次数

SQL数据库设计最佳实践(地址)

当然我意识到没有一种"正确的方法"来设计SQL数据库,但我想在我的特定场景中得到一些关于更好或更差的意见.

目前,我正在设计一个订单输入模块(使用SQL Server 2008的Windows .NET 4.0应用程序),当谈到可以应用于多个位置的数据时,我在两个设计决策之间徘徊.在这个问题中,我将专门提到地址.

地址可以被各种对象(订单,客户,员工,货运等)使用,并且它们几乎总是包含相同的数据(地址1/2/3,城市,州,邮政编码,国家等).我原本打算将每个字段作为列包含在每个相关表中(例如,订单将包含Address1/2/3,City,State等.而Customers也将包含相同的列布局).但我的一部分想要在这种情况下应用DRY/Normalization原则,即有一个名为"Addresses"的表,它通过相应表中的Foreign Key引用.

CREATE TABLE DB.dbo.Addresses
    (
        Id          INT
                    NOT NULL
                    IDENTITY(1, 1)
                    PRIMARY KEY
                    CHECK (Id > 0),

        Address1    VARCHAR(120)
                                NOT NULL,

        Address2    VARCHAR(120),

        Address3    VARCHAR(120),

        City        VARCHAR(100)
                    NOT NULL,

        State       CHAR(2)
                    NOT NULL,

        Country     CHAR(2)
                    NOT NULL,

        PostalCode  VARCHAR(16)
                    NOT NULL
    )

CREATE TABLE DB.dbo.Orders
    (
        Id          INT
                    NOT NULL
                    IDENTITY(1000, 1)
                    PRIMARY KEY
                    CHECK (Id > 1000),

        Address     INT
                    CONSTRAINT fk_Orders_Address
                    FOREIGN KEY REFERENCES Addresses(Id)
                    CHECK (Address > 0)
                    NOT NULL,

        -- …
Run Code Online (Sandbox Code Playgroud)

sql database-design

31
推荐指数
4
解决办法
6万
查看次数

这是在关系数据库中建模地址信息的好方法吗?

我想知道这是不是一个好设计.我有许多需要地址信息的表格(例如街道,邮政编码/邮编,国家,传真,电子邮件).有时相同的地址将重复多次.例如,可以针对供应商存储地址,然后针对发送给他们的每个采购订单存储地址.然后,供应商可以更改其地址,并且任何后续采购订单都应具有新地址.它比这更复杂,但这是一个示例要求.

选项1将所有地址列作为属性放在各个表上.在创建时将详细信息从供应商复制到PO.可能存储多个副本

选项2创建单独的地址表.从供应商和采购订单表到地址表有一个外键.只允许在地址表上插入和删除,因为更新可能会比您想要的更改.然后我会有一些计划任务,删除地址表中不再被任何东西引用的任何行,因此未留下未使用的行.也许对地址表中的所有非pk列也有一个唯一的约束来阻止重复.

我倾向于选择2.有更好的方法吗?

编辑:我必须保留采购订单上的地址,就像发送时一样.此外,我建议它有点复杂,因为可能有一个传递地址和一个帐单地址(还有一堆其他表有地址信息).

过了一会儿,我会根据日期删除旧的采购订单.在此之后,我打算垃圾收集任何地址记录,这些记录不再被任何引用(否则感觉就像我在创建泄漏).

sql rdbms database-design

26
推荐指数
2
解决办法
2万
查看次数

ISO标准街道地址?

是否有ISO标准地址格式?我似乎找不到一个,我想知道对象和数据库设计的目的.

(一个显示一系列格式的有趣文档是:http://www.bitboost.com/ref/international-address-formats.html,但它很疯狂!)

standards iso

22
推荐指数
2
解决办法
2万
查看次数

如何最好地表示数据库中的地址

可能的重复:
世界上所有地址都有共同的街道地址数据库设计吗?
在数据库中存储国际地址的"最佳"方式是什么?
在数据库中实现一致且全面的地址存储的最佳实践

我目前有四个表,客户,联系人,设施和客户.

每个表都有以下字段:AddressLine1,AddressLine2,City,StateOrProvince,PostalCode.

我想将地址移到一个单独的表中,并且还能够指定地址类型(计费,运输,主要等).

我的解决方案如下:

  1. 从客户,联系人,设施和客户中删除AddressLine1,AddressLine2,City,StateOrProvince,PostalCode.
  2. 创建地址表,其中包含AddressID(PK),AddressLine1,AddressLine2,City,StateOrProvince,PostalCode,LastUpdateUser,LastUpdateTime字段.
  3. 使用字段AddressTypeID,AddressTypeName,AddressTypeDescription,AddressTypeActive,LastUpdateUser,LastUpdateTime创建AddressTypes表
  4. 使用字段CustomerID,AddressID,AddressTypeID,CustomerAddressActive,LastUpdateUser,LastUpdateTime创建CustomerAddresses表
  5. 使用ClientID,AddressID,AddressTypeID,ClientAddressActive,LastUpdateUser,LastUpdateTime字段创建ClientAddresses表
  6. 使用字段ContactID,AddressID,AddressTypeID,ContactAddressActive,LastUpdateUser,LastUpdateTime创建ContactAddresses表
  7. 创建FacilityAddresses表,其中包含FacilityID,AddressID,AddressTypeID,FacilityAddressActive,LastUpdateUser,LastUpdateTime字段

我正在寻找指导,以确定是否有比我设计的解决方案更好的解决方案.大家为什么这么想?

编辑:此时我并不关心美国以外的任何事情,也不关心如何存储街道地址,即街道号码与整个街道地址.我担心数据库设计和表结构的立场.

database-design data-modeling

12
推荐指数
1
解决办法
2万
查看次数

如何设计优雅地代表ADDRESS的数据库模式?

按地址,我只指国家,州,城市,地区,街道,建筑物,

在哪里可以有效地在其他表格(例如人员)中引用该地址,以便我们可以选择同一城市等的人员​​?谢谢。

database database-design database-schema

4
推荐指数
1
解决办法
8821
查看次数