2012-03-07 6 views
3

私の職場では、オブジェクトごとに異なるタイプのプロパティを格納する一種のインベントリアプリケーションを作成し、プロパティ/カラムを動的に処理する能力を持つ問題を見つけました。既存のオブジェクトの新しいプロパティが毎回アプリケーションを変更する必要はありません(たとえば、今はBluetoothハードウェアを考慮する必要があります)、新しいオブジェクトがすべて登場したらゲームパッド!)。これらのオブジェクトはもちろん、編集可能なだけでなく読み込み可能でなければなりません。ガイダンスデータベース構造/エンジンの選択

私たちは伝統的なSQL中心型(Oracle、MySQL、MSSQL)ですが、他の方法(NoSQLなど)を行う可能性に反対しているわけではありません。に。ただし、ASP.NET MVCを使用して開発する必要があります。

ご指摘いただければ幸いです。 :)

答えて

3

実際、あなたが記述した問題は、リレーショナルdbmsを介して完全に解決できますが、チームにはもっと時間がかかります。私は、ドキュメントデータベースはあなたにとってより良い選択だと思います。 RavenDBは偉大なドキュメントデータベースで、リレーショナルデータベースとドキュメントデータベースの両方の恩恵を兼ね備えています。それは完全にACIDに準拠しています、それは素晴らしいLinqのプロバイダを持っていて、それはかなり速く、特に最新のビルドです。

私の提案は、あなたが試してみるまで正確にはわからないということです。今まで私がravendbで持っていた唯一の問題は、索引付けで把握していたことです。ドキュメンテーションにはいくつかの重要なノートがありません。私はAyendeがすぐにその問題に取り組むことを願っています。

ところで、MongoDBを試すこともできます。それはACIDに準拠しておらず、Linqプロバイダを持っておらず、あなたが推測したようにRavenDBよりもクエリを書くことは難しいですが、C++で書かれ、アトミックI/O操作を持ち、非常に高速です。

+0

あなたは、なぜ彼らがすでに知っているツールを適用するのにチームがより多くの時間を要すると思うかについて詳しく述べてください。 –

+0

@ hal9000あなたが知っていることは、使い慣れたツールを使用すると自動的に時間とコストを節約することはできません。リレーショナルデータベースの主な利点は、dbスキーマの定義、Dataオブジェクトとの同期、ORMまたはDALの処理、およびスキーマの変更にdbとオブジェクトレベルの両方の変更を必要としないことです。もちろん、索引を除いて、doc dbs、特にravendbに関連する学習曲線はあまりありません。ドメインオブジェクトを書くだけで、すでに永続的です。私が上で述べた苦しいステップを回避する必要はありません。 – Davita

+0

@Davitaは私の混乱の一部を "動的な"オブジェクト、すなわち完全に壊れたエンティティを動的に作成する必要があります。私は迷っています、申し訳ありません。 – rebelliard

1

構造化されたデータ(またはサウンドファイルや画像など)を保存して処理する必要があり、Oracleに慣れている場合は、LOBとXMLTypeを調べることをお勧めします。 Oracleには、XML技術(スキーマの検証、xslt変換、バイナリ・ストレージ、xpath索引など)がビルトインでサポートされています。

関連する問題