RDBにスキーマレスなデータを格納する方法を検討中
スキーマレスといえばXMLDBという気もするが、インストール不要のお手軽ファイルDBがよいので、やっぱりRDBになってしまう。格納方法として思いついたのが以下の2通り。
- シリアライズ
オブジェクトをシリアライズしてそのままBlob型のカラムに格納する方法
ID | Data |
1 | <?xml version="1.0"?> <名前 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <姓>山田</姓> <名>太郎</名> </名前> |
2 | <?xml version="1.0"?> <名前 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <姓>山田</姓> <名>次郎</名> </名前> |
プログラム側はC#なので、オブジェクトをXMLSerializerに突っ込んでDBに保存・読込を行えばよいので実装が楽そう。問題はどうやって検索するのか?
- プロパティーに分解
オブジェクトのプロパティー単位でレコードを追加する方法
ID | PropertyName | Value | Type |
1 | 姓 | 山田 | System.String |
1 | 名 | 太郎 | System.String |
2 | 姓 | 山田 | System.String |
2. | 名 | 次郎 | System.String |
こちらは検索はできそう。でもレコード数が多くなるので、Insertが大変そう。
0 件のコメント:
コメントを投稿