XML 列 Contact.AdditionalContactInfo について
Contact テーブルには、名前、電話番号、電子メール アドレスなど、顧客の一般的な連絡先情報が格納されています。また、このテーブルには AdditionalContactInfo という名前の XML 型の列があります。
1 人の顧客の電話、携帯電話、およびポケットベルの番号が、それぞれ 1 つとは限りません。テーブルのデザイン時には、追加の連絡先の数がわからないこともあり、追加の連絡先情報を格納するのに必要な列数がわかりません。追加の連絡先情報を格納するための列を複数作成して、それらの列に NULL 値を格納する代わりに、顧客ごとの追加の連絡先情報を含む XML ドキュメントを格納する XML 型の列を 1 つ作成することができます。
AdventureWorks データベースの場合、このような XML 型の列として AdditionalContactInfo という名前の列があります。この追加の連絡先情報は、他のアプリケーションと共有することができます。たとえば、この情報は、顧客間関係管理 (CRM: Customer Relations Management) アプリケーションで役立つことがあります。
CRM アプリケーションでも、この列に連絡先情報を格納することができます。この列には、顧客から連絡があった日やその日のやり取りに関する情報も格納できます。
これは、型指定された xml 型の列です。この列に使用されているスキーマは、この Microsoft Web サイトで確認できます。この列では、次のスキーマが使用されます。
- AdventureWorks ContactInfo スキーマ
- AdventureWorks ContactRecord スキーマ
- AdventureWorks ContactTypes スキーマ
この列に格納されているサンプルの XML インスタンス
次に、サンプルの XML インスタンスを示します。
<AdditionalContactInfo xmlns="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo" xmlns:crm="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactRecord" xmlns:act="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes">
<act:telephoneNumber>
<act:number>111-111-1111</act:number>
<act:SpecialInstructions>
Call only after 5PM.
</act:SpecialInstructions>
</act:telephoneNumber>
Note that customer has second home at this address.
<act:homePostalAddress>
<act:Street>123 Oak</act:Street>
<act:City>Seattle</act:City>
<act:StateProvince>WA</act:StateProvince>
<act:PostalCode>777</act:PostalCode>
<act:CountryRegion>USA</act:CountryRegion>
<act:SpecialInstructions>If correspondance to the primary address
fail, try this one</act:SpecialInstructions>
</act:homePostalAddress>
Customer provided additional email address.
<act:eMail>
<act:eMailAddress>customer1@xyz.com</act:eMailAddress>
<act:SpecialInstructions>Dont send emails for urgent issues. Instead use
this emergency contact phone
<act:telephoneNumber>
<act:number>112-111-1111</act:number>
</act:telephoneNumber>.
</act:SpecialInstructions>
</act:eMail>
<crm:ContactRecord date="2001-06-02Z">This customer is interested in
puchasing a high end bicycles for his family. The customer
contacted Mike in sales.
</crm:ContactRecord>
</AdditionalContactInfo>
その他の XML インスタンスを参照するには、次のクエリを実行します。
select AdditionalContactInfo
from Person.Contact