Поделиться через


Об XML-столбце Contact.AdditionalContactInfo

В таблице Person хранится стандартная контактная информация заказчиков, такая как имя, номер телефона и адрес электронной почты. В этой таблице также имеется xml-столбец с именем AdditionalContactInfo.

У заказчиков может быть несколько телефонов, мобильных телефонов, адресов электронной почты и пейджеров. Так как точное число дополнительных контактных данных может быть недоступно во время проектирования, невозможно знать, сколько столбцов потребуется для хранения этих сведений. Вместо создания нескольких столбцов, содержащих эти сведения, и хранения значений NULL, можно создавать один XML-столбец для хранения XML-документов с дополнительными контактными данными для каждого заказчика.

В базе данных База данных AdventureWorks2008R2 этот столбец называется AdditionalContactInfo. Эти дополнительные контактные сведения могут быть предоставлены другим приложениям. Например, эти сведения могут быть полезны для приложений управления взаимоотношениями с клиентами (CRM).

Приложения CRM также могут хранить контактные данные в этом столбце. Сюда могут входить такие сведения, как дата, когда с заказчиком связывались, и записи диалога.

Этот столбец является типизированным столбцом xml. Схемы, применяемые в этом столбце, описаны на следующем веб-сайте Майкрософт. Этот столбец использует следующие схемы:

  • схему ContactInfo

  • схему ContactRecord

  • схему 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>

Звонить только после 17:00.

</act:SpecialInstructions>

</act:telephoneNumber>

Обратите внимание, что у заказчика по этому адресу имеется второй дом.

<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>При ошибке отправки корреспонденции на главный адрес

попытайтесь использовать следующий: </act:SpecialInstructions>

</act:homePostalAddress>

Заказчик указал дополнительный адрес электронной почты.

<act:eMail>

<act:eMailAddress>customer1@xyz.com</act:eMailAddress>

<act:SpecialInstructions>По неотложным вопросам не следует отправлять сообщения по электронной почте. Вместо этого используйте

указанный номер телефона для связи в чрезвычайных ситуациях.

<act:telephoneNumber>

<act:number>112-111-1111</act:number>

</act:telephoneNumber>.

</act:SpecialInstructions>

</act:eMail>

<crm:ContactRecord date="2001-06-02Z">Этого клиента интересуют

велосипеды класса high end для всей семьи. Клиент общался

с менеджером по продажам Майком.

</crm:ContactRecord>

</AdditionalContactInfo>

Для поиска других экземпляров XML выполните следующий запрос:

USE AdventureWorks2008R2;
GO
SELECT AdditionalContactInfo
FROM   Person.Person
WHERE AdditionalContactInfo IS NOT NULL;

См. также

Основные понятия