Хранить реляционную базу данных в формате XML - PullRequest
1 голос
/ 04 июня 2009

Я должен хранить реляционные данные (текст, цифры и изображения) в файле XML. Я хочу сохранить связь между данными и структурой таблиц.

Как мне это сделать?

Мое приложение Windows Mobile использует Windows Communication Foundation (WCF) для получения данных. Получив данные, он сохраняет их в файле XML.

WCF использует ADO.NET Entity Framework для извлечения данных.

Я собираюсь использовать SQL Server 2008.

Данные будут использоваться для отображения в приложении. Я не хочу использовать SQL Server CE для хранения данных, потому что это медленнее. Возможно, вместо использования XML-файла я могу использовать обычные текстовые файлы для хранения текстов и чисел и файлы изображений для хранения изображений.

Короче говоря, XML будет способом хранения данных вместо использования SQL Server CE или WCF.

Спасибо!

Ответы [ 6 ]

1 голос
/ 04 июня 2009

Спасибо за дополнительную информацию.

Мое предложение первое, попробуйте SQL Server CE. Это не может быть медленнее для того, что вы делаете. Время, которое вы экономите, не изобретая велосипед, может быть лучше потрачено на ускорение других частей вашего приложения.

В остальном, при условии, что вам не нужно долго хранить данные или делать с ними много, я бы предложил скопировать данные из типа возврата веб-службы в DataSet. Тип DataSet имеет метод WriteXml, который может сохранять данные, и метод ReadXml, который может читать их обратно.

1 голос
/ 04 июня 2009

Определите ваш формат XML как XSD. Если вы используете Visual Studio, добавьте новый DataSet, и «пользовательский инструмент» автоматически создаст строго типизированный набор классов на основе DataSet. Вы можете определить таблицы и отношения с ограничениями. Это легко сделать в Visual Studio. Если вы не знакомы с Visual Studio, вы можете создать XSD вручную и использовать xsd.exe для генерации кода.

После того, как DataSet со строгим типом заполнен данными, вы можете сериализовать его в поток XML, вызвав WriteXml.

1 голос
/ 04 июня 2009

как насчет набора данных? определить таблицы и отношения, загрузить данные в набор данных и сохранить их как XML (метод WriteXml)

1 голос
/ 04 июня 2009

Хотя это немного двусмысленно, вы можете попытаться найти «FOR EXPLICIT» в SQL Server. Это будет включать в себя отношения. Ссылка: http://www.eggheadcafe.com/articles/20030804.asp

0 голосов
/ 04 июня 2009

Что вы подразумеваете под «поддерживать связь между данными и структурой таблиц»? Вы говорите о чем-то большем, чем поддержание идентификатора исходной записи базы данных в атрибуте узла XML? Что вам нужно делать с данными XML, когда они у вас есть? Будет ли оно отредактировано и должно быть повторно применено к базе данных?

Больше вопросов, чем ответов от меня .... извините.

0 голосов
/ 04 июня 2009

Какой SQL Server вы используете? Некоторые серверы позволяют запрашивать XML-ответ на запрос. Это может сэкономить вам много работы.

РЕДАКТИРОВАТЬ: Поскольку вы указали, что будете использовать MSSQL 2008, вам может повезти. В MSSQL 2005 и более поздних версиях есть ключевое слово «FOR XML», которое позволяет получать результаты в виде XML. Попробуйте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...