Хранить массив в SQL Server 2008

Я разрабатываю приложение менеджера контактов с использованием SQL Server 2008 (firebase database, основанная на услугах). Большинство контактов имеют несколько писем или несколько телефонных номеров. Так есть способ хранения массива как типа данных в SQL Server? Или у кого-нибудь есть альтернатива этому пути?

Вы захотите создать отдельные таблицы со строкой на номер контакта или адрес электронной почты.

CREATE TABLE Contacts (contactId int, name varchar(128), etc, etc CREATE TABLE ContactEmail (contactId int, emailAddress varchar(128), etc CREATE TABLE ContactPhone (contactId int, phoneNumber varchar(128), etc 

Это позволит вам изменять отдельные номера / электронные письма, удалять их, добавлять их и т. Д., Не требуя, чтобы внешняя программа распаковывала массив.

Но если вы действительно хотите сохранить его denormalized, вы можете преобразовать массив в строку с разделителями. , поместите разделитель между каждым адресом электронной почты (с соответствующей магией, чтобы убедиться, что адрес еще не содержит разделитель), а затем разделите его на обратном пути.

Нет никакого типа массива в SQL.

Вы должны создать таблицу имен phonenumbers и сохранить один номер телефона для использования строки и использовать внешний ключ (называемый, например, person_id), чтобы ссылаться на таблицу лиц.

Еще один вариант, который вы можете использовать, заключается в сохранении контактной информации в виде XML-документа в поле типа XML в вашей таблице. Я сделал бы это только в том случае, если я не буду искать людей, основанных на некоторой части этой контактной информации.

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

Я знаю, что вы действительно можете запросить XML в SQL Server 2008, но это действительно зависит от того, сколько записей у вас будет в вашем списке контактов, поскольку синтаксический анализ всего XML на большом количестве данных будет очень медленным по сравнению с отдельными таблицами ,

Вы можете использовать переменную таблицы, чтобы использовать ее, вы должны использовать таблицу создания DDL, но сначала нужно написать в (@). При этом у вас есть массив … но вы НЕ МОЖЕТЕ хранить это на таблице, потому что таблица представляет собой массив, который он имеет. Мне действительно нужно иметь структуру данных внутри вашей таблицы, вы должны использовать XML. Как я понимаю, SQL Server 2000 имеет несколько функций для работы с XML.

Возможно, если вы расскажете мне больше подробностей о ваших причинах, чтобы сделать это … Я могу вернуть вам больше идей!

Надеюсь, мой ответ поможет вам