問題タブ [schema-design]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json - 配列のないネストされたドキュメントを使用して、JSONの有効なマングーススキーマを定義しますか?
JavaScriptとマングースはかなり新しいです。私はマングースを介して永続化したい少し奇妙なデザインのJSONで終わりました。
これは、このJSONの例です。
a1、a2は可変です(常にa1もa2も存在しない、おそらく他の存在もあります) 何か、something_elseも可変であり、異なる識別子にすることができます-それらはプロパティです-。
たぶん、そのような奇妙なJSONを設計するのは私のせいですが、そのスキーマを定義する最良の方法は何でしょうか?
私にはさまざまな選択肢がありますが、どちらも私を納得させません:
これは非常に醜いですが、JSONをmyJSON [0] = {name:"theName"...}として保存できるようになりました。Ofcは最も醜いですが、私が見つけた元のデータ構造に最も近いものです。
もう1つ
これはもっときれいですが、いくつかの問題があります。最終的なJSONには、元のJSONにはなかった多くの配列と間接参照が含まれます。
これらの厄介な配列をすべてスキーマから削除する方法はありますか?
アップデート:
データモデルを少し適応させることができたので、最後に問題を解決しました。
次に、「props」には必要なすべてのJSONが含まれます(名前が外部に配置されている場合を除く)。これは私が考えていた方法ではありませんが、うまく機能します(私は思います)。
mongodb - mongodb vs. postgres:モデリング条件
現在、プロジェクト用のデータベースを選択しています。候補者はmongodbとpostgresです。ユーザーは条件付きロジックを定義する必要があります。たとえば、ユーザーは条件を(文字列として)「xが発生する」、「yが離れる」などを定義し、「xが発生した場合(yが離れるかzが来る)...」という条件に連結できます。 。
単一のjsonドキュメントでそれを行うと、リレーショナルデータベースよりもはるかに読みやすくなります。
postgresでこれを合理的にモデル化する方法はありますか?postgres 9.2がjsonをサポートすることは知っていますが、クエリ機能は不格好なようです。
mongoでは、動詞( "xoccurs")が条件間で複製されます。動詞の更新は複数の行に影響します。ここに問題がありますか?
編集:mongoドキュメントは次のようになります:
mongodb - 私の場合のMongoDBスキーマ設計に関する意見
これは、MongoDBでよくある質問です。いつ埋め込むか、いつ参照するかです。
しかし、私の場合、これはどういうわけかジレンマのようです。埋め込み可能なリファレンスのあるドキュメントがありますが、ディスクのサイズがかかります。しかし、参考にすると、かなりのパフォーマンスコストがかかります。
これが例です。問題として「詳細」を持つこのメンバーがいるとします。
このメンバーの詳細をすべてのブログに含めたいのですが、このメンバーが「asdf」を作成すると、表示されるすべてのブログにメンバーの詳細が表示されます。したがって、ブログドキュメントに対して実行できるオプションは2つあります。
まず、メンバーの_idを入力するだけで参照を作成します。
または次に、代わりにメンバーをブログに埋め込みます。
したがって、最初のオプションでは、パフォーマンスの問題であるメンバーの別のクエリが必要です。ただし、2番目のオプションの方が高速です。クエリを実行する必要があるのは一度だけですが、ブログの数が増えると、埋め込みドキュメント「メンバー」の冗長データ用にディスクが大きくなります。
PS:この例でわかるように、メンバーとブログの関係は1対多であるため、メンバーは多くのブログを持つことができますが、メンバーの詳細変数は同じままです。「名前」と「ウェブサイト」。
この場合、より良い意見はありますか?あなたが3番目の解決策も持っているならそれは素晴らしいでしょう。前に感謝します。
nosql - Hbase スキーマの設計 - 提案が必要
最近、Hbase と Hadoop スタックの実験を始めました。アプリケーションをゼロから構築しようとしています。Google n-gram データセットを使用するアプリケーションのスキーマを設計しています。
データセットは、行キーとして ngram を持ち、多くの修飾子 (Year、page count、match_count) を持つ 1 つの列ファミリーを持つモデルにするか、モデルは行キーとして n-gram と複数の列ファミリーを持つことができることを認識しています年、page_count、match_count。
モデルは、このデータの使用方法に依存することを理解していますが、これらのアプローチの両方の長所と短所を理解したいと思います。
乾杯、ドワラック
sql - メタデータのカタログを実装し、データベースで SQL を自動化する方法は?
ここで、5NF、EAV、および 6NF に関する議論と、メタデータと複雑な SQL を「自動的に」処理するためのカタログの必要性を読みました。それは実際にどのように実装されていますか?
PerformanceDBA は、カタログに言及する 6NF および EAV に関するいくつかの回答を書きました。たとえば、次の質問です。
特に、PerformanceDBA が書いた複数の固定テーブルと柔軟な抽象テーブル
「たとえば、カタログを備えた 6NF データベースの場合、すべての SELECT を実行するために必要な SQL を [再] 生成する一連のプロシージャがあり、すべてのユーザーに 5NF でビューを提供するため、基礎となる 6NF 構造. それらはカタログから追い出されます. したがって、変更は簡単で自動化されています. EAV タイプは、カタログがないため、手動で行います.
mongodb - MongoDBを使用したログファイルアクセス
最初のMongoDB(および最初のNoSQL)データベースを設計していて、ファイルに関する情報をコレクションに保存したいと考えています。各ファイルドキュメントの一部として、ファイルアクセス(読み取りと書き込みの両方)のログを保存したいと思います。
ドキュメントの一部としてログメッセージの配列を作成することを検討していました。
各ログメッセージには、タイムスタンプ、アクセスの種類、およびファイルにアクセスするユーザーのユーザー名が含まれます。これにより、特定のファイルのログに非常にすばやくアクセスできるようになると思いました。これは、おそらくログで実行される最も一般的な操作です。
MongoDBには16Mバイトのドキュメントサイズ制限があることを知っています。非常に頻繁にアクセスされるファイルは、この制限を超える可能性があると思います。
このタイプのロギング用にNoSQLスキーマを設計するためのより良い方法はありますか?
csv - schema.ini の作成方法 - ヘルプが必要
朝、
私はこれに慣れていないので、schema.ini ファイルの作成方法について簡単に説明する必要があります。
2 つの列が必要です。1 つは製品 SKU 用で、これは文字列値です。もう 1 つは価格で、10 進数値です。
私は現在、自分のschema.iniに次のものを持っていますが、それらがどうあるべきかわかりません.skuをテキストとして実行しましたが、10進数については不明です.
performance - MongoDB データ スキーマのパフォーマンス
MongoDBドキュメントでの配列とハッシュの内部割り当てと配置(私の理解では、配列を介して実装されている)を理解しようとしています。
私たちのドメインには、最大 5 ~ 6 レベルの深さ (ネストされたハッシュを考えてください) までの論理グループに、数千から数十万のキーと値のペアを含むドキュメントがあります。
キーのネストをドットで表します。たとえば、x.y.z
MongoDB に挿入すると、自動的に次のようになります。
最も一般的な操作は、値をインクリメントすることです。これは、atomic を使用して行います$inc
。通常は、1 回の更新コマンドで一度に 1000 以上の値を処理します。新しいキーは時間の経過とともに追加されますが、頻繁ではありません (たとえば、1 日 100 回)。
別の表現は、名前にドットを使用せず、他の区切り文字を使用して、フラットなドキュメントを作成することであると思いました。
キーと値のペアの数と、$inc
更新と新しいキーの挿入に関する使用パターンを考慮して、次の観点から 2 つのアプローチ間のトレードオフに関するガイダンスを探しています。
ディスク上のスペース オーバーヘッド
$inc
更新のパフォーマンス新しいキー挿入のパフォーマンス
mongodb - Mongodbスキーマ設計に適した1つの提案
こんにちは私はmongodbの初心者です。Javaを使用しています。
リレーショナルテーブルにsystem_propertiesという2つのテーブルがあります。
このようなもの。
このためのスキーマを作成しようとしています。例:1つのドキュメントを挿入する場合
これはこの設計に最適なスキーマですか?
結合を回避するために、ドキュメントのみを埋め込みます。
"_id" = 100(リレーショナルテーブルの主キー)も同じものを参照しているため、system_id:100(リレーショナルテーブルの外部キー)が必要かどうか疑問です。