重複の可能性:
世界のすべての住所に共通の番地データベース設計はありますか?
国際住所をデータベースに保存するための「最良の」方法は何ですか?
データベース内の一貫性のある包括的なアドレスストレージのベストプラクティス
現在、Customers、Contacts、Facilities、Clientsの4つのテーブルがあります。
これらの各テーブルには、AddressLine1、AddressLine2、City、StateOrProvince、PostalCodeの各フィールドがあります。
アドレスを別のテーブルに移動し、アドレスのタイプ(請求、配送、メインなど)も指定できるようにしたいと思います。
私の解決策は次のとおりです。
- AddressLine1、AddressLine2、City、StateOrProvince、PostalCodeを顧客、連絡先、施設、およびクライアントから削除します。
- フィールドAddressID(PK)、AddressLine1、AddressLine2、City、StateOrProvince、PostalCode、LastUpdateUser、LastUpdateTimeを使用してAddressesテーブルを作成します。
- フィールドAddressTypeID、AddressTypeName、AddressTypeDescription、AddressTypeActive、LastUpdateUser、LastUpdateTimeを使用してAddressTypesテーブルを作成します
- フィールドCustomerID、AddressID、AddressTypeID、CustomerAddressActive、LastUpdateUser、LastUpdateTimeを使用してCustomerAddressesテーブルを作成します
- ClientID、AddressID、AddressTypeID、ClientAddressActive、LastUpdateUser、LastUpdateTimeのフィールドを持つClientAddressesテーブルを作成します
- ContactID、AddressID、AddressTypeID、ContactAddressActive、LastUpdateUser、LastUpdateTimeのフィールドを持つContactAddressesテーブルを作成します
- フィールドFacilityID、AddressID、AddressTypeID、FacilityAddressActive、LastUpdateUser、LastUpdateTimeを含むFacilityAddressesテーブルを作成します
私が考案したものよりも良い解決策があるかどうかを判断するためのガイダンスを探しています。なぜ誰もが考えるのですか?
編集:私はこの時点で米国外では何も気にせず、番地を保存する方法、つまり番地と番地全体の関係も気にしません。私はデータベース設計とテーブル構造の観点から懸念しています。