問題タブ [relational]
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.
sql - 単一の SQL テーブル内のレコード間の多対多の関係を表す最良の方法は何ですか?
次のようなSQLテーブルがあります。
更新: 元のデータ (州、都市、学校) の既存の階層的な性質が、項目間に単純な関係が必要であるという事実を覆い隠しているため、サンプル テーブルを変更しています。
これらのエンティティ間の双方向の関係を定義して、1 つのエンティティを表示しているユーザーが関連するすべてのエンティティのリストを表示できるようにしたいと考えています。
関係は、エンド ユーザーによって定義されます。
これらの関係をデータベースで表現し、その後クエリを実行して更新する最良の方法は何ですか?
見たところ一通り…
私の直感では、リレーションシップ テーブルは次のようになります。
その場合、指定された entity_id が 4 の場合、関連するすべてのレコード (1 と 5) を取得するにはどうすればよいでしょうか?
同様に、entity_id = 1 のクエリは、2、3、4、および 5 を返す必要があります。
お時間をいただきありがとうございます。質問を明確にすることができるかどうかお知らせください。
flat-file - プログラミング チームに古いやり方をやめるよう説得する方法は?
これは、ビジネス指向のプログラミングの質問であり、解決方法がわかりません。私は、BASIC を 20 年以上使用しているプログラマーのチームと一緒に働いています。私は、.NET で同じソフトウェアを作成するのを手伝うために連れてこられましたが、更新と最新のプラクティスだけが必要でした。問題は、他の 3 人のチーム メンバー (全員が BASIC プログラマーですが、1 人は現在 .NET もやっています) にリレーショナル データベースを正しく行う方法を理解してもらえないことです。彼らが理解できないことは次のとおりです。
基本的にはお客様のタグ情報を追跡する取引を行っております。現在の取引と過去の取引を追跡できる必要があります。古いシステムでは、フラット ファイル データベースが使用されていました。このテーブルには、顧客の現在の基本的なトランザクションのレコードが含まれるテーブルと、顧客の以前のすべてのトランザクションと重要な金銭情報が含まれる別のトランザクションが含まれていました。冗長性を防ぐために、現在のトランザクションを履歴トランザクションで上書きします (履歴ファイルが最初に更新され、次に現在のファイルが更新されます)。必要なトランザクション テーブルは 1 つだけなので、これはまったく必要ありませんが、上司または他の 2 つの共同テーブルのいずれかが必要です。 - 労働者はこれを理解できないようです。どうすれば彼らに光を見るように説得できますか? ばかげた量の作業をしなければならず、データタブに何度もアクセスすることになりますか? 入力していただきありがとうございます!
sql - 同じテーブル内の共通行を取得する
少し検索しましたが、達成しようとしているものとまったく同じものは見つかりませんでした。
基本的に、私は 2 人のユーザーの投票習慣の類似点を見つけようとしています。
私は、行われた個々の投票を格納するテーブルを持っています。
たとえば、ユーザー A と B の間の類似性を計算するには、次の 2 つのことを調べます。
- 共通の票数。つまり、両者が同じ投稿に投票した回数です (この時点では方向は関係ありません)。
- 一般投票で同じ方向に投票した回数。
(次に、大まかな類似性評価を達成するために、単純に #2 を #1 のパーセンテージとして計算します)。
私の質問は、どうすれば 2 人のユーザーの投票セットの交差を見つけることができるかということです。(つまり、非常に非効率的な方法ですべての投票をループすることなく、ポイント#1を適切に計算するにはどうすればよいですか。)それらが異なるテーブルにある場合、INNER JOINで十分だと思います...しかし、それは明らかに機能しません同じテーブルで(またはそうなるでしょうか?)。
どんなアイデアでも大歓迎です。
database-design - トリッキーなリレーショナルDB設計の質問
私は数日間いじり続けてきたトリッキーな問題を抱えており、最適な解決策を見つけることができません。
これらは私のテーブルです:
- サイト
- site_node
- ページ
サイトノードテーブルには、階層を表すノードのリストが含まれています(ネストされたセットを使用)。各ノードには、1つ以上の関連ページが必要です。各サイトには、1つの関連するエラーページと1つの見つからないページが必要です。
したがって、ページはノードに属しているか、エラーまたは見つからないページとしてサイトに属している必要があります。私が現在試している解決策は次のとおりです。
- ページテーブルのparentTypeフィールドとparentIdフィールド。タイプは「node」、「site_error」、「site_notFound」のいずれかで、idはサイトまたはノードID(タイプに関連する方)になります。
- nullになる可能性のあるページテーブルのnodeIdフィールド、次にサイトテーブルのerrorPageIdフィールドとnotFoundPageIdフィールド。
オプション#1は、各ページが1つだけの他のエンティティに属することを保証しますが、parentIdフィールドは複数の場所を指すことができるため、関係を実際に適用することはできません。
オプション#2の方がクリーンですが、基本的には、サイトが2つのエラーに「属している」と言っており、ページが見つかりません。これはおそらく悪い習慣です。
何か考えや提案はありますか?
ありがとう、
ジャック
database - リレーショナル データベースとネット構造
Microsoft という会社は、「microsoft」、「ms」、「m$」などと呼ばれることがあります。これらの名前は、1 つの ID のエイリアスであると言えます。「エイリアス」関係を保存したい場合は、次のペアのようにする必要があるかもしれません
それとも、より良いアプローチがありますか?
ruby-on-rails - リレーションを使用してフォームに ID を自動入力する
ブログを作成しました。ブログには投稿があり、投稿はユーザーによって作成されます。私のブログにはすでにログインシステムがあります。そして、私はユーザーと彼の投稿の間の関係を作りました. ここで、新しい投稿を追加するときに、Rails に user_id フィールドを自動入力させたいと考えています。
隠しフィールドを追加し、保存したセッションから user_id を追加する必要がありますか?
または、Ruby on Rails には、リレーションと ID の使用を処理する独自の方法がありますか?
@編集:
モデル:
コントローラー:
azure - マルチテナンシー アプリケーションを構築する際のベスト プラクティスは何ですか?
Software as a Service など、複数のテナントをサポートするアプリケーションを構築する際のベスト プラクティスは何ですか?
このトピックを詳しく説明しているホワイト ペーパーへのリンクは大歓迎です。