問題タブ [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.
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 の方法に関する提案はありますか? これで永遠に遊んでいますが、運がありません。
ありがとう!
mysql - 自己参照列を使用して MySQL テーブルを更新する
次のような表(簡略化)があります。
selfreference 列は、同じテーブルの ID 番号を参照します。上記の例では、ウィーンとヴィエンナの両方が同じ都市を参照しているため、それらの自己参照列の値は 1 に等しくなければなりません。
言い換えれば、私は次のようなことをする必要があります
しかし、上記の SELECT ステートメントは明らかに間違っています。どう進めていいのか途方に暮れています。
どんなヒントでも大歓迎です。
万歳、テンチ
編集: 目的の出力は次のようになります。
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 制約を変更します。
私は何が欠けていますか?これに別の方法でアプローチする必要がありますか?
sql-server - 階層テーブル(自己参照テーブル)のロールアップ数
以下の形式のテーブルがあります。これは、各レコードがその親レコードを指す自己参照テーブルです。
出力を以下の形式にしたい.親の数は、葉の子の数の合計でなければなりません. 注: リーフの子のみにカウントが含まれます。親まで巻き込みたい。
助けてください。
database - Flask-SQLAlchemyで自己参照の1対多の関係を作成するには?
という名前のモデルがありPost
、これには というブール値フィールドがありis_answer
ます。a のis_answer
フィールドPost
が True の場合、それは「質問」です。そうでなければ、それは「答え」です。次の質問と回答の関係を作成したいと思います。
1 つの「質問」には多くの「回答」が含まれる場合がありますが、1 つの「回答」には 1 つの「質問」しかありません。「質問」も「回答」も本質的にPost
s であるという事実から、関係は自己参照的でなければならないと思います。
これが私が試したことです:
エラーは次のとおりです。
ArgumentError: Post.question と back-reference Post.answer は両方とも同じ方向記号 ('ONETOMANY') です。多対一側に remote_side を設定するつもりでしたか?