2

データベース オブジェクトのプロパティが固定されていないというデータベース設計上の問題があります。また、アプリケーションのユーザーには、いつでもオブジェクトにプロパティを追加するオプションが必要です。

これは固定数の列を持つ従来のデータベース設計では実装できないため、キーと値のペアの設計パターンを使用することを考えており、c#(.Net) で実装する方法を探しています。

Mysql をバックエンド データベースとして使用することを好みます。

Q1. オブジェクトをシリアライズしてmysqlデータベースに保存する最良の方法は何ですか? ( XML または JSON またはバイナリ ? )

Q2. 堅牢な .Net Bindings を備えたキーと値のペアのデータベース エンジンはありますか?

4

5 に答える 5

1

これらのプロパティについてクエリ/レポートを作成する必要がない場合は、XMLとして保存し、プロパティが追加または削除されてもエラーが発生しない、ある種の緩い結合でオブジェクトをシリアル化することをお勧めします。JSONは、コンテンツを提供するときにアプリケーションで処理できます。

他のデータベースフィールドでクエリ/レポートを作成する必要がある場合は、データを格納できるある種のデータベーススキーマを考え出すことをお勧めします。

于 2009-08-20T09:49:42.707 に答える
1

シリアル化はアプリケーションにパフォーマンスのオーバーヘッドを追加しますが、それを実現する場合は、バイナリシリアル化を使用するのが最も速いためです。シリアル化のためのprotobuf-netを見てください。

于 2009-08-20T09:51:48.490 に答える
0

私の知る限り、MySQLはXMLフィールドをサポートしています。ただし、インデックスを作成できるかどうかはわかりません。

XmlSerializerを使用してオブジェクトをxmlにシリアル化してから、 MySQLxml関数を確認してください。

于 2009-08-20T09:47:25.007 に答える
0

Q2への回答:

ApacheCouchDBはJSONを格納します。

C#のスタートガイドは次のとおりです。http ://wiki.apache.org/couchdb/Getting_started_with_C%23

データベースにはRESTfulインターフェースがあり、どの言語からでも簡単に使用できます。

于 2009-08-20T09:52:42.233 に答える
0

Are you sure you need relational database? For my needs , the db4objects is enough

于 2009-08-20T10:14:43.780 に答える