База пар ключей-значений в .Net - PullRequest
2 голосов
/ 20 августа 2009

У меня проблема с дизайном базы данных, когда свойства объекта базы данных не зафиксированы. И пользователь приложения должен иметь возможность добавлять свойства к объекту в любое время.

Поскольку это невозможно реализовать в традиционном проектировании базы данных с фиксированным числом столбцов, я думаю об использовании шаблона проектирования пары ключ-значение И я ищу способы реализовать это в C # (. Net).

Я предпочитаю использовать Mysql в качестве базы данных.

Q1. Каков наилучший способ сериализации объекта и хранения в базе данных MySQL? (XML или JSON или Binary?)

* * 1013 Q2. Существует ли какой-либо механизм базы данных пары ключ-значение с надежными привязками .Net?

Ответы [ 5 ]

1 голос
/ 20 августа 2009

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

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

1 голос
/ 20 августа 2009

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

0 голосов
/ 20 августа 2009

Вы уверены, что вам нужна реляционная база данных? Для моих нужд достаточно db4objects

0 голосов
/ 20 августа 2009

В ответ на вопрос 2:

Apache CouchDB хранит JSON.

Вот руководство по началу работы для C #: http://wiki.apache.org/couchdb/Getting_started_with_C%23

База данных имеет интерфейс RESTful, который облегчает использование с любого языка.

0 голосов
/ 20 августа 2009

Насколько я знаю, в MySQL есть поддержка полей XML. Я не уверен, что он может их проиндексировать.

Просто сериализуйте ваш объект в XML с помощью XmlSerializer , а затем посмотрите на MySQL xml-функции .

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