問題タブ [self-referencing-table]

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

sql - トップダウン JSON としての SQL 自己参照テーブル クエリ

階層データであるscopeという名前の自己参照テーブル(私のuser_accountスキーマ内)があります-いくつかのサンプルデータ(Postgres 9.4):

*****編集:******

SQL フィドルを作成しました: http://sqlfiddle.com/#!15/43ff9/2/0より詳細な例を示します。JSON 出力の最下層の繰り返しの性質に注意してください。参考までにこちらの情報を残しておきます。

*****編集終了*****

user_account.scope

明らかに、最上位のスコープにはparent_idがなく、複数のレベル(任意)に深くなる可能性があります。

テーブル全体をネストされた JSON オブジェクトとして再帰的に返す SQL クエリを作成しようとしています。私はこれでほとんど成功しました:

ただし、問題は、サブスコープが最上位アイテムの配列としてリストされていることです (json_agg(sub_scopes) 部分のため) が、単純な NULL またはネストされたものに対する単一のオブジェクトとしてのみリストされます (row_to_json( のため) ssc) 部分)。また、サブスコープごとに 1 回ずつ、JSON 内で親を繰り返します。

私が得ているもの:

私が欲しいもの:

row_to_json を json_agg に変更しようとしましたが、再帰呼び出し内で集計関数を使用できません。A) このクエリを修正する方法、または B) json を "修正" して、必要に応じて値をマージする postgres の方法に関する提案はありますか? これで永遠に遊んでいますが、運がありません。

ありがとう!

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

mysql - 自己参照列を使用して MySQL テーブルを更新する

次のような表(簡略化)があります。

selfreference 列は、同じテーブルの ID 番号を参照します。上記の例では、ウィーンとヴィエンナの両方が同じ都市を参照しているため、それらの自己参照列の値は 1 に等しくなければなりません。

言い換えれば、私は次のようなことをする必要があります

しかし、上記の SELECT ステートメントは明らかに間違っています。どう進めていいのか途方に暮れています。

どんなヒントでも大歓迎です。

万歳、テンチ

編集: 目的の出力は次のようになります。

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

c# - EF Code First を使用した従業員とアシスタントの関係のモデル化

ビジネス要件は次のとおりです。

  • すべての従業員をデータベースに保存する必要がある
  • アシスタントがいる従業員もいれば、いない従業員もいます
  • 一部の従業員には複数のアシスタントがいます
  • アシスタントも社員です

明らかに、自己参照の状況が少しあります。しかし、典型的な「Employee-Manager」の状況との違いは、ここでは 1 人の Employee が 0 または複数のアシスタントを持つことができるということです。したがって、従業員と従業員のアシスタントの組み合わせは、従業EmployeeAssistantの 1 対多の関係で別のテーブルに格納する必要があります。しかし、Entity Framework 6 Code First でこれをモデル化する方法がわかりません。

私はこれから始めました:

しかし、コマンド中にエラーが発生しますUpdate-Database:

テーブル 'EmployeeAssistant' に FOREIGN KEY 制約 'FK_dbo.EmployeeAssistant_dbo.Employee_EmployeeId' を導入すると、サイクルまたは複数のカスケード パスが発生する可能性があります。ON DELETE NO ACTION または ON UPDATE NO ACTION を指定するか、他の FOREIGN KEY 制約を変更します。

私は何が欠けていますか?これに別の方法でアプローチする必要がありますか?

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

sql-server - 階層テーブル(自己参照テーブル)のロールアップ数

以下の形式のテーブルがあります。これは、各レコードがその親レコードを指す自己参照テーブルです。

出力を以下の形式にしたい.親の数は、葉の子の数の合計でなければなりません. 注: リーフの子のみにカウントが含まれます。親まで巻き込みたい。

助けてください。

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

database - Flask-SQLAlchemyで自己参照の1対多の関係を作成するには?

という名前のモデルがありPost、これには というブール値フィールドがありis_answerます。a のis_answerフィールドPostが True の場合、それは「質問」です。そうでなければ、それは「答え」です。次の質問と回答の関係を作成したいと思います。

1 つの「質問」には多くの「回答」が含まれる場合がありますが、1 つの「回答」には 1 つの「質問」しかありません。「質問」も「回答」も本質的にPosts であるという事実から、関係は自己参照的でなければならないと思います。

これが私が試したことです:

エラーは次のとおりです。

ArgumentError: Post.question と back-reference Post.answer は両方とも同じ方向記号 ('ONETOMANY') です。多対一側に remote_side を設定するつもりでしたか?