問題タブ [database-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 投票する
4 に答える
761 参照

sql - 階層データの複製

次のような古典的な方法で構築された自己参照階層テーブルがあるとします。

私が今必要としているのは、テスト レコードの ID を取得し、添付されたすべてのレコード (指定されたレコードを含む) を複製する関数 (できればプレーン SQL) です。もちろん、複製されたレコードには新しい ID が必要です。望ましい結果は、たとえば次のようになります。

ポインタはありますか?PostgreSQL 8.3 を使用しています。

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

sql - varchar(255)v tinyblob v tinytext

私の副次的な質問は、tinyblobとtinytextの間に本当に違いがありますか?

私の本当の質問を購入するのは、もしあれば、tinyblobまたはtinytextよりもvarchar(255)を選択する理由は何ですか?

0 投票する
9 に答える
423 参照

database-design - データベース設計

シミュレーション結果を保存するデータベースを作成する必要があります。これを設計するのに役立つリソースは何ですか?

編集:詳細が必要な人のために...

軍で使用されている離散イベント シミュレーションを使用します。したがって、重要なシミュレーション イベントは、武器が発射されたとき、キルが発生したとき、および武器がターゲットをキルできなかったときです。その他の重要なイベントは、ターゲットが検出されたとき、または追跡されなくなったときです。私たちは非常に詳細なログ ファイルを保持しており、それをマイニングして平均やその他の統計を計算しています。私がデータベースに格納することに関心があるのは、主に統計です。

もう 1 つ含めたいのは、ケース ID です。システムと重要な入力パラメーターの特定の組み合わせに対応する英数字のケース ID 文字列を使用して、さまざまなケースを識別します。たとえば、センサーがモードに応じて 3 つの異なる範囲でターゲットを検出できると仮定すると、ケース ID には検出範囲の各レベルに対応する文字があり、0、1、または 2 のラベルが付けられます。特定のケースでは、ケース ID の文字が 9 以降の文字に切り替わります。このケース ID は、データベース内の重要なキーであることは間違いありません。データを保存したら、特定の数値を取得して、さまざまなケースを比較するグラフを作成する必要があります。現在は Excel でグラフを作成していますが、最近は MATLAB を追加しています。

データベース技術に関しては、Access でテーブル設計を行ってプロトタイプを作成し、MS SQL Server で実装しようと考えました。Ruby を使用して、データ テーブルとグラフを含む HTML レポートを作成する予定です。

0 投票する
7 に答える
6024 参照

sql - SQL Server の正規化戦術: varchar vs int Identity

ここで最適なソリューションが何であるか疑問に思っています。

正規化されたデータベースがあるとします。システム全体の主キーは varchar です。私が疑問に思っているのは、このvarcharをintに関連付けて正規化するか、そのままにしておくべきですか? varchar のままにしておく方が簡単ですが、より最適な場合があります

たとえば、私は持つことができます

または私が持っている可能性があります

もちろん、他にもいくつかの一対多の関係を追加してください。

皆さんはどう思いますか?どちらが優れているのか、その理由は?

0 投票する
8 に答える
56307 参照

sql-server - データベースにディレクトリ/階層/ツリー構造を格納する方法は?

ディレクトリ/階層/ツリー構造をデータベースに保存するにはどうすればよいですか? つまり、MSSQL サーバーです。

@olavk:あなたが私自身の答えを見たようには見えません。私が使用する方法は、再帰クエリよりも優れています:)

ppsこれが行く方法です!

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

linux - Linux 用の PostgreSQL Visual Database Designer をお勧めできますか?

私が Windows を使用しているときは、優れた MicroOLAP Database Designer for PostgreSQL を使用していますが、これはオープン ソースまたはマルチプラットフォームではありません。
Linuxで使用できる、このソフトウェアの代替品を知っていますか、または推奨できますか?

編集: 明確にするために、ワインを使用して PostgreSQL の MicroOlap をエミュレートしたくありません。うまく機能しません。ネイティブまたは Java ベースのものを好むでしょう。

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

design-patterns - リレーショナル データベースの設計パターン?

設計パターンは通常、オブジェクト指向設計に関連しています。リレーショナル データベースを作成およびプログラミングするための設計パターン
はありますか?
多くの問題には、再利用可能な解決策が必要です。

例には、テーブル設計、ストアド プロシージャ、トリガーなどのパターンが含まれます。

martinfowler.comのようなパターンのオンライン リポジトリはありますか?


パターンで解決できる問題の例:

  • 階層データの保存 (例: タイプを持つ単一のテーブル vs 1:1 のキーと違いを持つ複数のテーブル...)
  • 可変構造でデータを保存する (例: 一般列 vs xml vs 区切り列...)
  • データの非正規化 (影響を最小限に抑える方法など)
0 投票する
9 に答える
389 参照

sql - SQL 設計の問題 - 複数のセクションの項目

セクション テーブルとアイテム テーブルがあります。

問題は、各項目が 1 つ以上のセクションにある可能性があるため、各項目の単純な「section_id」が機能せず、SQL には「section_ids の WHERE 5」と言うことができる配列を格納する方法がないことです。 ..

ID のリストをコンマ区切りの文字列として保存することを検討しましたが、問題は、アイテムが sql クエリの特定のセクションにあるかどうかを確認する方法が見つからないことです。ここに表示される唯一のオプションは、テーブル全体を選択し、php で文字列を解析することです。言うまでもなく、何千ものアイテムがある場合、これは良い考えではありません。

複数のセクションを持つアイテムを「リンク」し、特定のセクション ID のすべてのアイテムを簡単に選択できるようにするより良い方法はありますか?

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

database - 非メジャー コードをファクト テーブルのメジャーと混在させることはできますか?

複雑なデータの蓄積を行っています。私たちの顧客は、2 つの次元 (時間とビジネス ユニット) を含むいくつかのデータを私たちに送信します。時間は主に年月です。ビジネス ユニット ディメンションには、名前と、レポートおよび分析の目的で BU が属することができるいくつかのカテゴリなど、いくつかの属性しかありません。

彼らが私たちに送るものには、いくつかの現在の状態情報 (日付とコード) が含まれています。これらは事実のようです。また、ビジネス ユニットとの関係を特徴付ける情報も送信します (ほとんどが追加コード)。繰り返しますが、これらはビジネス ユニットと期間に固有のものです。

最後に、彼らは明らかに付加的な事実である情報を送ってきます。適切な単位を持つ通貨とカウントが含まれます。

この定性的な情報を 1 つのファクト テーブルに付加的なファクトと混ぜ合わせるべきですか? それとも、定性的なもの (カウントでのみ使用できます) を定量的なもの (合計で使用できます) から分離する必要がありますか?

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

database-design - マルチユーザー向けの CouchDB モデリング

私はすでに文書データベース、特に CouchDB の単純さに興奮しています。しかし、そのようなデータベースがマルチ ユーザー システムの実行可能なオプションであるかどうかを理解するのに苦労しています。これらのシステムは、文書データベースが提供しないレコード間の何らかの関係を必要とするためです。

そのような場合、それは完全に間違ったツールですか? または、タグ付けと一時的なビューがこれを達成する方法ですか? それとも...

更新:
これまでの回答を理解しています。しかし、質問を少し言い換えさせてください。通常は CouchDB に適した半構造化データが大量にあるとします。「type=post」や「year=2008」のようにタグ付けできます。私の質問は、このタイプのタグ付けでどこまで行けるかということです。10.000 個の名前を含む配列フィールドを作成できますか? または、これを行うより良い方法はありますか?この文書ベースの意味でどのように考えるかを理解することが重要です。