問題タブ [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.

0 投票する
1 に答える
48 参照

ruby-on-rails - 主キー以外の列を使用したレールの関連付け

私はRailsにかなり慣れていないので、ActiveRecordが提供する関連付けを利用して、新しいプロジェクトとスキーマをセットアップしようとしています。ユーザーと質問の2つのモデルがあります。ユーザーが管理ユーザーによって設定されている場合、カテゴリのリストのチェックボックスが付いたフォームがあります。これらのカテゴリを特定の質問にマップして、後でセットアップユーザーに尋ねたいと思います。私の考えでは、マッピングテーブルuser_to_categoriesがあり、ユーザーから必要な質問にたどり着くことができます。ただし、questionsテーブルにはquestion_idの主キーがあるため、has_many:throughはここでは機能しないようです。多くの質問が同じカテゴリに含まれる可能性があるため、category_idは質問テーブルの別の列になります。レールとアクティブレコードの関連付けを利用するためにこれを設定する方法についての提案はありますか?

0 投票する
0 に答える
683 参照

database-schema - SQuirreL SQL における列プロパティの意味

SQuilrreL SQL を使用してローカルの MySQL サーバーに接続し、いくつかのテーブルの列の仕様を調べています。同時に、MySQL (MySQL Workbench) で同じテーブルの仕様を直接見ていますが、明らかに、列のプロパティが異なります。たとえば、SQuirelL SQL では 、 、 などのプロパティがありますIS_NULLABLEDECIMAL_DIGITSNUM_PREC_RADIXMySQL では 、 、 などのプロパティがNot NullありAuto IncrementますZero Fill

私の質問 - SQuirreL SQL のすべての列プロパティの意味は何ですか? さらに良いことに、それらを MySQL のプロパティにマップするにはどうすればよいでしょうか? (それらのいくつかはIS_NULLABLE<==>Not Nullのように明らかですが、ほとんどはそれほど明確ではありません)。

MySQL から Derby まで、SQuirreL SQL のプラグイン CopyDB を使用したばかりなので、これが必要です。変換ですべてが保持されているかどうか、およびテーブル構造にどのような変更が加えられたかを知りたいです。

ありがとうございました!

オファー

0 投票する
0 に答える
2250 参照

django - Django モデルの継承と構成、および複数のモデル/テーブルをまとめてクエリする

私は、多数の異なるモデルを持つ Django アプリを持っており、そのすべてに共通のデータがたくさんあります。最終的に、この問題は継承と構成のどちらを選択するかという問題に行き着くと思います。私の現在の実装は次のようなものです:

このモデルではThing、Thing モデルのマネージャーを使用してクエリを実行できます。の type フィールドを使用して、'a' または 'b' のいずれかを含むフィールドThingを調べ、 (ie) を要求することで、子オブジェクト データを取得できます。これは、すべてのオブジェクトのリストを取得するためのアプリでのかなり一般的な操作であるため、私が気に入っている機能です。typething.a.aFooThing

ここにはいくつかの問題があります。まず、typeフィールドは不要に思えます。最初に型を調べずに子データを取得する方法はありますか? 型の値を指定して正しいオブジェクトを返すインスタンス メソッドを使用して、これを回避できるようです。または、型フィールドを本当に取り除きたい場合は、 の逆関係フィールドのそれぞれを反復処理してThing、1 つを探します。それはDoesNotExist例外を発生させません。しかし、これは私にはかなりもろく感じます。新しい 'subthing' を追加した場合、新しいタイプを探すためCに更新する必要があります。これは、モデルを作成して抽象化することでThing修正できます。Thingそうすれば、のすべてのフィールドを取得でき、A使用する必要がなくなりますBThingtype分野。Thingただし、問題は、すべてのオブジェクトに対してクエリを実行できなくなることです。

私が考えている別のモデルは、データをとThingのフィールドに変換することで、これをひっくり返します。AB

このバージョンにはいくつかの利点があります。type上のフィールドが取り除かれThing、少なくとも私にとっては見た目も手触りもすっきりし、壊れにくくなっています。Thingただし、ここでの問題は、最初のバージョンでアブストラクトを作成する際の問題と同じです。すべての「サブシング」を一緒にクエリする能力を失います。Aオブジェクトのクエリまたはオブジェクトのクエリを実行できますが、両方を実行することはできませBん。すべての「サブシング」を照会する機能を犠牲にすることなく、このバージョンのモデルを使用できますか? QuerySet1 つの可能性は、両方のモデルを照会し、すべてのオブジェクトのを返すマネージャーを作成することです。それは動作しますか?

0 投票する
2 に答える
616 参照

xml - XMLスキーマのモジュール性とはどういう意味ですか?

XMLスキーマのモジュール性とはどういう意味ですか?つまり、xsdが与えられた場合、それをモジュール化するために何ができるでしょうか?

0 投票する
1 に答える
2875 参照

hbase - HBase:列修飾子をスキャンします-それは可能ですか?

各行に関連するさまざまなIDがあります。たとえば、、、1001および1002。これらの各IDには、同様の属性のセットがあります。

したがって、私の考えは、列修飾子を含む1つの列ファミリー('cf')を持つことです。

行(x)、列ファミリー(cf)、列(1001 *)をスキャンして、この場合は1001のすべての属性のマップを取得できますか?

明らかに、行キーに対してこれを行うことができますが、列修飾子が同じように機能するかどうかはわかりません。

0 投票する
1 に答える
646 参照

xml - XML スキーマ設計 -ソース属性値

XML スキーマ ファイルの文書化を依頼されました。各スキーマ要素について、ビジネスおよび技術的な説明を含める必要があります。私たちのガイドラインと W3C XML Schema の推奨事項を見て、ベスト プラクティスとは具体的にどのようなものなのか疑問に思いました。

私たちのガイドラインでは、注釈タグは次の形式にする必要があると述べています。

XML の推奨事項では、ソース属性のタイプは「xs:anyURI」である必要があると規定されています。明らかに、「BuinessDescription」と「TechnicalDescription」は URI ではなく、スキーマ全体で何度も繰り返されます。したがって、ソース属性をセマンティック属性として使用することは本当に正しいのでしょうか?

XML Schema http://shop.oreilly.com/product/9780596002527.doで、Eric van der Vlist は、これは受け入れられることを示唆していますが、相互運用性の問題につながる可能性があると述べて、この見解と矛盾しています。

0 投票する
1 に答える
49 参照

c# - どのスキーマ変更シナリオ?

私の現在のスキーマは次のようになります。

上記のIDfield は、IDENTITY INTend user としても使用されるフィールドaccount Idです。DisplayVal画面に表示されるものです。

新しいクライアントは独自のAccount Id値を提供しましたが、それらはであるため、そのままフィールドalpha-numericに入ることができません。IDENTITYここに私のシナリオがあります: 最高のmaintainabilityend user experiencemagnitude and impact of changesおよびを提供するシナリオを探していますtesting/QA impact

私の最初のシナリオは、すべてのタイプの に対応するAccount Number列を追加することでした。次のようになります。VARCHAR(x)Account Numbers

上記では、最初のクライアントの場合、seeded IdentityAccount IdにコピーされAccount Numberますが、他のクライアントの場合は がseeded Identity作成されますが、それらAccount Numberは異なり、 と一致する場合と一致しない場合がありDisplay Valueます。

私の 2 番目のシナリオは、列を追加せずAccount NumberIDENTITY INSERT. クライアントがAccount Number.

3 番目のシナリオは、基本的に、新しいものを のままにしてAccount Numberlegacy Account Numberすべての新しいレコードに対して新しい ID 値を作成することでした。これには、エンド ユーザーが新しい に慣れる必要がありますAccount Number。おそらく最も簡単ですが、欠点があるかどうかはわかりません。

この場合にうまく機能する別のシナリオがわかっている場合は、お知らせください。

0 投票する
2 に答える
1934 参照

node.js - 外部キーによるMongoDBクエリ

私は2つのコレクションを持っています:

ユーザー:

  • { id:"aaaaaa" 年齢:19歳、性別:"f" }
  • { id:"bbbbbb" 年齢:30 , 性別:"m" }

レビュー:

  • { id:777777 , user_id:"aaaaaa" , text:"いくつかのレビュー データ" }
  • { id:888888 , user_id:"aaaaaa" , text:"一部のレビュー データ" }
  • { id:999999 , user_id:"bbbbbb" , text:"一部のレビュー データ" }

私は見つけたいと思いますすべてのレビューどこsex=fage>18

(レビューのコレクションが膨大になるため、入れ子にしたくありません)

0 投票する
1 に答える
1637 参照

mongodb - ジョブキューの正しい mongo スキーマ設計は何ですか?

Mongo でジョブ キューを実装したいと考えています。ソフトウェア システム全体が Mongo をベースにしているため、Mongo は自然で、うまく適合する可能性があります。

ジョブコレクションには、各ジョブの状態がドキュメントとして格納されます。これは、クエリのニーズに基づいた上限のないコレクションであると思います。ジョブドキュメントは次のようになります。

ジョブコレクションの一般的なアクセス パターンは次のとおりです。

  • typestatepriority 、および場合によってはtiming.submittedの範囲クエリに基づいて、実行する未処理のジョブを検索します。以前の読み取り時間よりも長く送信されました
  • 処理された (完了、失敗、キャンセルされた) ジョブをすべて見つける
  • すべての未処理 (送信済み、実行中) のジョブを見つける
  • _id で特定のジョブを検索し、そのペイロードを取得します(状態が実行中の場合)

クエリの大部分は、実行が必要な未処理のジョブを見つけることです。ジョブコレクション内でドキュメント サイズが大きく変わらないように、ペイロードjobs_payloadコレクションに移動する価値はありますか?

大量の処理済み (完了済み、失敗済み、キャンセル済み) のジョブと未処理のジョブは、最終的にジョブコレクションに必要なワーキング セット メモリを増加させますか? 適切なインデックスを使用しても、未処理のジョブを実行するためのアクセス時間は遅くなりますか?

スキーマ設計を使用して行うことができる代替案とトレードオフは何ですか?

0 投票する
2 に答える
735 参照

mongodb - アクティビティのタイムラインをmongodbのどこに配置するか、ユーザーに埋め込むか、個別に配置する必要がありますか?

私はeラーニングアプリを作成しており、学生の活動をタイムラインとして表示しています。userコレクションに埋め込むか、。を使用して別のコレクションを作成する必要がありuserIdます。

制約:

  • 1対多の関係。
  • ユーザーアクティビティは詳細で多数あります
  • 90%の時間、一度に1人のユーザーのみを表示する必要があります。もう一方のケースは、スーパーバイザー(教師)がユーザーのアクティビティの概要を表示する必要がある場合です(おそらく別のコレクションですか?)
  • アクティビティを検索して生徒を見つけるユースケースについては考えていませんが、後でこれを使用する可能性がありますか?(たとえば、誰が最初に特定のアクティビティを終了したかを確認しますか?しかし、それによって関係が多対多に変わり、まったく異なる質問になります)

これらの2つの質問で、関連する問題のさまざまなスキーマを見つけました。