問題タブ [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.
database - DBアプリケーションの監査証跡/変更履歴を残すための効果的な戦略は?
かなり複雑なデータベースでデータの変更履歴を維持するために人々が成功したいくつかの戦略は何ですか. 私が頻繁に使用して開発しているアプリケーションの 1 つは、レコードが時間の経過とともにどのように変化したかを追跡するためのより包括的な方法から本当に恩恵を受ける可能性があります。たとえば、現在、レコードには多数のタイムスタンプと変更されたユーザー フィールドを含めることができますが、操作がロールバックされた場合など、複数の変更をログに記録するためのスキームは現在ありません。完璧な世界では、保存などのたびに記録を元どおりに再構築することができます.
DBに関するいくつかの情報:
- 1 週間に数千件のレコードを処理できる容量が必要
- 50~60台
- メインの改訂されたテーブルには、それぞれ数百万のレコードがある場合があります
- 適切な量の外部キーとインデックス セット
- PostgreSQL 8.x の使用
database-design - 拡張可能な Web フォームのデータ モデル
field1..field10 の 3 つの 10 フィールドを含むフォームがあるとします。おそらく 10 個のデータベース列を使用して、フォーム データを 1 つ以上のデータベース テーブルに格納します。
数か月後、さらに 3 つのフィールドを追加したいとします。将来的には、要件の変更に基づいて、このフォームからフィールドを追加/削除する可能性があります。フォーム フィールドごとにデータベース列がある場合、フォームを変更するたびにデータベースに対応する変更を加える必要があります。これはメンテナンスの頭痛の種のようです。もっと洗練された方法があるはずです。
私の質問は、UI と疎結合されたデータ モデルをどのように設計すればよいかということです。具体的なユースケースは、ユーザーによる拡張/カスタマイズが可能な CRM システムです。
database-design - 多次元キューブ (OLAP) での What If 分析
いくつかのディメンションを持つ多次元 OLAP キューブがあります。これらのディメンションの一部には階層があります。ユーザーは、ディメンションの階層を変更して、キューブ内のメジャーに対して「what-if」分析を実行したいと考えています。
たとえば、部門間の従業員の移動による部門のリソース予算への影響や、製品がある工場から別の工場に移動した場合の製造コストの変化を知りたいと考えています。
最新の OLAP エンジンでこれを行う簡単な方法はありますか?
sql-server - SQL Server 2005で数値と文字列の両方の値を含むことができるフィールドをどのようにモデル化する必要がありますか?
作成する必要のある新しいデータベーステーブルがあります...
論理的には、、、、およびが含まれID
ています。
その値フィールドは、本質的に数値または文字列のいずれかです。 name
"value"
フィールドをavarchar
にするだけではなく、などのフィルターを使用してクエリを実行できるようにしたいのですWHERE value > 0.5
。
SQL Server 2005でこの概念をモデル化するための最良の方法は何ですか?
編集:
ここで複数のフィールド(1つは数値用、もう1つは非数値用)を作成することに反対していませんが、それらはすべて実際には同じ概念であるため、それが素晴らしいアイデアかどうかはわかりませんでした。
別々のフィールドを作成して、それらを1つの論理列に合体させるビューを作成できると思います。
それについて何か意見はありますか?
私が達成したいことは本当に非常に単純です...通常、このデータはグリッドタイプのビューで盲目的に表示されます。
そのグリッドの数値もフィルタリングできるようにしたいと思います。このテーブルは最終的に数千万のレコードに含まれることになります。そのため、クエリのパフォーマンスで自分を追い詰めたくありません。
そのクエリのパフォーマンスが私の主な関心事です。
algorithm - レーティングの実装をどのように構築しますか?
私たちが取り組んでいるプロジェクトには、SO のものと同様の「評価」システムが必要です。ただし、私たちの場合、賛成票で「タグ付け」する必要がある複数のエンティティがあります(増分のように、賛成票のみで、反対票を投じることはありません)。エンティティの種類に関係なく、評価の高い順にすべてのエンティティを表示する必要がある場合があり、基本的には結果セットを混ぜ合わせていると思います。柔軟でスケーラブルであるように、これを実装するためにどのデータ構造/アルゴリズムを使用していますか?
database-design - どのデータベース テーブル スキーマがより効率的ですか?
どのデータベース テーブル スキーマがより効率的で、その理由は?
また
ユーザーと企業が1対1の関係にあるという事実を考えると。
sql - SQL - 階層を保存してナビゲートする方法は?
データベース内の階層情報をモデル化し、取得するためにどのような方法を使用していますか?
sql - 改訂のためのデータベース設計?
プロジェクトには、エンティティのすべてのリビジョン(変更履歴)をデータベースに保存する必要があります。現在、これについて2つの設計された提案があります。
例:「従業員」エンティティの場合
デザイン1:
デザイン2:
このことを行う他の方法はありますか?
「デザイン1」の問題は、データにアクセスする必要があるたびにXMLを解析する必要があることです。これにより、プロセスが遅くなり、リビジョンデータフィールドに結合を追加できないなどの制限も追加されます。
また、「デザイン2」の問題は、すべてのエンティティのすべてのフィールドを複製する必要があることです(リビジョンを維持したいエンティティは約70〜80個あります)。
sql - データベースに「20 の質問」のようなウィザードを実装する
Oracle データベースに格納された質問ツリーを使用して、データ駆動型のウィザードを実装しようとしています。パフォーマンスの面であまり犠牲にせずにデータベース部分を柔軟にする (つまり、質問の新しいパスを簡単に追加する) ために使用する最適なスキーマは何ですか?
database-design - 余分なテーブルまたは非固有の外部キー?
システムにはいくつかのタイプのオブジェクトがあり、それぞれがデータベース内に独自のテーブルを持っています。ユーザーはそれらのいずれにもコメントできる必要があります。コメント テーブルをどのように設計しますか? いくつかのオプションを考えることができます:
- 各オブジェクト タイプ (ObjectAID、ObjectBID など) の FK 列を含む 1 つのコメント テーブル
- オブジェクト タイプごとに 1 つずつ、複数のコメント テーブル (ObjectAComments、ObjectBComments など)
- タイプ (「ObjectA」) を示す別の列を持つ 1 つの汎用 FK (ParentObjectID)
あなたならどちらを選びますか?私が考えていないより良い方法はありますか?