問題タブ [data-modeling]

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 投票する
8 に答える
393 参照

database - データベースをモデル化するとき、「特殊なケース」のデータをどのように処理しますか?

私たちの組織は、クライアントにさまざまなサービスを提供しています (例: Web ホスティング、技術サポート、カスタム プログラミングなど)。当社の Web サイトには、利用可能なすべてのサービスとそれに対応する価格を一覧表示するページがあります。これは静的データでしたが、上司は代わりにデータベースからすべてを取得することを望んでいます。

約100のサービスがリストされています。ただし、「価格」に数値以外の値があるのはそのうちの 2 つだけです (具体的には、「ISA」と「コスト + 8%」という文字列です。これらが何を意味するのかよくわかりません。私に聞いて)。

この 2 つのリストがあるからといって、"price" 列を varchar にするのは嫌です。私の現在のアプローチは、特別な「price_display」フィールドを作成することです。これは、空白であるか、価格の代わりに表示するテキストが含まれています。ただし、このソリューションは汚いハックのように感じられます (クエリが不必要に複雑になります)。より良いソリューションはありますか?

0 投票する
3 に答える
2474 参照

authentication - 認証/認可スキーマ

認証/承認スキーマのベスト プラクティス データ モデルはありますか?

0 投票する
6 に答える
407 参照

data-modeling - 一部のスナークは boojums です: boojums のリスト、またはすべてのスナークの is_boojum プロパティ?

問題のドメインには、多数の名前付きスナークが含まれています。スナークのいくつかはブージャムです。

これをモデル化するには、少なくとも 2 つの方法があります。

スナークにはオスとメスがいると判断した場合、スナーク クラスの定義に「性別」プロパティを追加するのは直感的に思えます。そして、5 人を除くすべてのスナークが打ち負かされた対象であると判断した場合、王族のリストを作成します。

適用できる原則はありますか、それともアーキテクチャの好みの問題ですか?

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

c++ - 熱方程式を使用して、散乱データから地形表面を補間します

これはこのフォーラムでの私の最初の質問ですので、ご容赦ください。ルールに違反していないことを願っています。分散した3Dデータをグリッド関数としてモデル化するさまざまな方法を検討しています(xyサポート上、z = z(x、y))。

別の質問に答えると、コーリアンは、熱方程式を使用して、私が聞いて学びたがっている地形表面を補間(近似)する方法、または並列実装を見つける方法について言及するほど素晴らしかったですか?それがパブリックドメインである場合、または少なくともそれがどのように行われるかをもう少し詳しく説明するために、coryanまたは他の誰かが私にそのような実装を指摘してください。

0 投票する
5 に答える
1651 参照

database-design - リリースされたシステムでデータ モデルの変更を管理するためのベスト プラクティス

Web アプリケーション プロジェクトの開発に着手しようとしています。

アーリーアダプターが遊んでフィードバックできるように、何かを早期に頻繁にアップしたいと思います。

しかし、プロジェクトが進行し、シ​​ステムの理解が深まるにつれて、データ モデルが変化することを想定しています。

データ モデルを適切に更新し、早期導入者のデータ損失を防ぐというジレンマにどのように対処すればよいですか? 「ユーザーは注意してください」という大きな警告を単に表示する必要がありますか、それとも移行スクリプトを作成する努力をする必要がありますか?

0 投票する
3 に答える
543 参照

sql - データ モデリング: テーブルに複数の外部キー制約が 1 つのテーブルにある場合の適切なリレーショナル デザインとは?

2 つのテーブルがあります: 1. 従業員 2. バウチャー

Employees テーブルには 1 つの主キーがあります。Vouchers テーブルには、Employees テーブルを参照する 3 つの外部キー制約があります。

以下は、SQL Server でテーブルとそれらのリレーションシップの両方を作成するサンプル T-SQL スクリプト (実際のテーブル スクリプトではありません) です。

しかし、エラーがスローされます:

ここで利用できる効率的なソリューションについてはわかりません。リレーションシップの要件は次のとおりです。従業員が削除されるたびに、従業員への列の一部を参照するバウチャーは削除されません (ON DELETE CASCADE はオプションではありません)。代わりに、削除された従業員を参照する列 (IssuedBy、ReceivedBy、および/または ApprovedBy) の値を NULL に設定する必要があります (列が NULLABLE であるため)。

どうもありがとう!

0 投票する
6 に答える
4534 参照

sql - カスタム製品タイプの汎用データモデルを定義する

カタログ内の各製品タイプの複雑な詳細を可能にする製品カタログを作成したいと思います。製品タイプには、それらに関連付けられた非常に異なるデータがあります。一般的なデータのみを含むもの、データのいくつかの追加フィールドを含むもの、その製品タイプに固有の多くのフィールドを含むものがあります。新しい製品タイプをシステムに簡単に追加し、それらの構成を尊重する必要があります。これらの製品のデータモデルを設計する方法、および永続性と取得を処理する方法に関するヒントが大好きです。

一部の製品は非常に一般的であり、それらの製品を編集するために共通のUIを使用する予定です。拡張可能な構成が関連付けられている製品は、編集用に作成された新しいビュー(およびコントローラー)を取得します。すべてのカスタム製品には独自のモデルが定義されていますが、共通の基本クラスを共有していると思います。基本クラスは、カスタムフィールドを持たない汎用製品を表します。

処理する必要のある製品の例:

  1. ジェネリック製品
    • 説明
  2. 電球
    • 説明
    • タイプ(蛍光灯、白熱灯、ハロゲン、LEDの列挙型)
    • ワット数
    • スタイル(洪水、スポットなどの列挙型)
  3. 冷蔵庫
    • 説明
    • 作る
    • モデル
    • スタイル(ドメインモデルに列挙型を含む)
    • 浄水器情報
      • 部品番号
      • 説明

システムで利用可能な製品タイプを見つけるためにMEFを使用することを期待しています。製品タイプのモデル、ビュー、およびコントローラーを含むアセンブリを作成し、それらのアセンブリをビンにドロップして、アプリケーションに新しい製品タイプを検出させ、ナビゲーションに表示することを計画しています。

  1. SQL Server 2008を使用して、これらのさまざまなタイプの製品を格納し、データベーススキーマを拡張せずに新しいタイプを追加できるようにするための最良の方法は何でしょうか。

  2. データベースからデータを取得する場合、これらの多態的なエンティティを正しいドメインモデルに変換するための最良の方法は何ですか?


更新と明確化

  1. 内部プラットフォーム効果を回避するために、(そのタイプの製品を格納するために)すべての製品タイプのデータベーステーブルがある場合でも、製品タイプにまたがるすべての製品を取得する方法が必要です。それはどのように達成されますか?

  2. 私は彼のSharePointリファレンスについてNikhilkとより詳細に話しました。具体的には、彼はこれについて話していました:http: //msdn.microsoft.com/en-us/library/ms998711.aspx。それは実際にはかなり魅力的なようです。XMLを解析する必要はありません。また、データに対する単純で高速なクエリを可能にするために実行できるインデックスがいくつかあります。たとえば、行の最初のint列が電球を表す場合のワット数であることがわかると、「75ワットの電球をすべて検索する」と言えます。アプリ層の何か(NHibernate?)は、製品タイプからuserdataスキーマへのマッピングを定義します。

  3. 製品ごとに多くの行が発生する可能性があるため、プロパティテーブルを持つスキーマに反対票を投じました。これはインデックスの問題につながる可能性があり、さらにすべてのクエリは基本的にデータをピボットする必要があります。

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

c# - カスケード削除を行わずにデータ モデルの依存関係を解決する

データ・モデル:

tTemplate (TemplateId int PK)
tPage (PageId int PK、TemplateId int FK)
tEmailMessage (EmailMessageId int PK、TemplateId int FK)

要件:

テンプレートの削除は、依存関係がない場合にのみ許可する必要があります。

TemplateService は、テンプレートの削除を担当します。

new TemplateService().Delete(myTemplate);

Page および Email モジュールは Template モジュールに依存していますが、Template モジュールはこれらの依存関係を認識していません。一部のセットアップでは、ページまたは電子メール モジュールが存在しません。基になるデータ モデルへの依存関係をどのように解決しますか? 項目を削除してもよいかどうかを確認するために、TemplateService に照会を開始させるにはどうすればよいですか?

EventBroker と Message Queue について調査しましたが、それらだけでどのように役立つかわかりません。また、.net イベント モデルだけを使用してこれを解決する方法もわかりません。

データの整合性を維持する方法を実際に探しているわけではありませんが、不要なサービス依存を引き起こすことなくサービス間通信を可能にする方法を探しています。テンプレートを削除しても問題がなく、tPage.TemplateId を null に設定することで依存関係が解決される PageService の実装があるかもしれません。他の実装では、カスケード削除を作成したい場合があります。

0 投票する
4 に答える
40270 参照

sql - 条件付きの質問を含む Q&A 調査をサポートするのは、どの mysql データベース テーブルと関係ですか?

現在、かなり単純な調査システムに取り組んでいます。データベース スキーマは単純なSurveyものになります。つまり、テーブルとQuestion1 対多の関係にあるAnswerテーブル、およびテーブルと 1 対多の関係にあるPossibleAnswersテーブルです。

最近、顧客は、以前の質問に対して特定の 1 つの回答をした人にのみ、特定の質問を表示する機能が必要であることに気付きました (例:タバコを購入しますか?の後に、お気に入りのタバコのブランドは何ですか?、2 番目の質問をする意味はありません) 。非喫煙者に質問です。)

ここで、データベース スキーマに関して、この条件付きの質問を実装する最良の方法は何だろうかと考え始めました。question AA と B の 2 つの回答があり、回答が?の場合question Bにのみユーザーに表示する必要があります。A

編集:私が探しているのは、要件に関する情報をデータベースに保存する方法です。私の SQL スキルは最低なので、データの処理はおそらくアプリケーション側で行われるでしょう ;)

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

multithreading - モデルとビューの間でデータを共有する方法は?

現在、入力データからモデルを構築し、そのデータをユーザーに表示するアプリケーションの再設計に取り組んでいます。現在のシステムには、モデルを構築するためのスレッド、モデルの視覚化を構築するためのスレッド、および視覚化を表示するスレッドがあります。私が抱えている問題は、モデリングと視覚化のスレッド間でポインターが渡されることです。スレッドを安全にするために、モデル内のすべてのオブジェクトにミューテックスが必要です。これは、システム内でアクティブなミューテックスが数千あり、両方のスレッドがリソースを競合するため、多くのストールが発生していることを意味します。

これら 3 つのスレッドが存在することを考えると、効率的かつスレッド セーフな方法でモデリング スレッドとビジュアライゼーション スレッド間でデータを共有する最善の方法は何でしょうか? 一部のデータ構造は大きく、モデリング スレッドのサイクルごとに変更されるため、パスごとにデータのコピーを作成するのは少し気が進まない。

編集:

私たちが望んでいるシステム全体の合計遅延は、ディスプレイの変化を示すディスプレイへのメッセージを受信して​​から最大 100 ミリ秒になることです。可能であれば高速化を望んでいますが、より重要なことは、一貫性を保つ必要があることです。現在、ミューテックスの競合により、サイクル タイムに大きなばらつきが見られます。モデリングからビジュアライゼーションに移行するデータは、2D 高さマップ (最大 18000 セル相当のデータ) によって支配されています。ただし、モデルの更新で更新されるセルの実際の数は大幅に少なく、おそらくわずか数百です。