問題タブ [table-relationships]
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.
codeigniter - コード イグナイター モデルとモデルの関係
CI では、モデル同士をどのように関連付けますか?現在、Users、UsersDepartment、UsersToDepartment、UserStatus の 4 つのモデルがあり、すべてのデータを取得できるようにするには、これら 4 つのモデルを結合する必要があります。
ユーザーテーブルからすべてのユーザーデータを選択するために、コントローラーに次のコードがあります。
Users テーブルに保存されている user_status は status_id のみであるため、UserStatus テーブルに接続して、users_status_id と同等の名前を取得する必要があります。ユーザーが所属するグループのリストを知る必要があります。したがって、Users.userid に基づいて UsersToDepartment テーブルから取得する必要があります。次に、UsersDepartment テーブルで同等のグループ名を取得します。さらに説明するには、私の図を参照してください。
ネイティブ PHP では、これは join を使用して実行できます。それはCIでどのように行われますか?
私はyiiで知っています、あなたはこのようにすることができます
これはCIでも可能ですか?
aggregate-functions - 複数のテーブルにまたがるDjangoクエリの式の集約
Django ORMクエリの関連テーブルからフィールドの式(例:減算)の集計(例:合計)を計算することは可能ですか?
私が達成しようとしていることの完全な例については、この動作するSQLFiddleを参照してください。私はそれを2つの質問に分けました(他の1つはここにあります)。この場合、Sequence
数列を表すモデルとPart
、この数列の「リンク」を表すモデルがあります。
したがって、それぞれがデルタPart
を表します。これは、シーケンス内の2つの値の差です。(連続していない)パーツのセットがあり、それらのデルタの合計を計算したいと思います。このようなもの:
しかし、単一のクエリでは(理由は、これをより複雑なクエリのサブクエリとして使用したいためです)。SQLでそれを行うのは簡単です:
DjangoORMを使用してそれを行う方法がわかりません。私は単一の値でそれを行うことができます:
ただし、複数の値を含む式の場合はそうではありません。使用F()
はまだサポートされていないので、別の方法を探しています。集合体の式に関するこの質問も調べましたが、関心のあるフィールドが同じテーブルではなく関連するテーブルにあるため、受け入れられた回答(を使用extra
)は私のケースAFAIKには適用されません。 。
誰かがそれを実験したい場合に備えて、これがSSCCEです:ダウンロードまたは参照。上記でリンクされているSQLフィドルと同じモデルとデータがあります。
mysql - この CakePHP アプリのモデル関係はどうあるべきですか?
これをどのように構成するかを理解するのに苦労しています。これが私のアプリです:
それはゲームのウェブサイトです...ゲームは「単語検索」、「数独」、「クロスワードパズル」です。
各ゲームには多くのパズルがあります。つまり、100 ほどの単語検索、100 ほどの数独などがあります。
各ゲームには多くのモードもあります。したがって、各単語検索を実行する方法は 5 つほどあります (時間指定、時間指定なしなど)、数独を再生する 5 つの方法などがあります。
各ゲームモードとパズルの組み合わせには、多くのハイスコアがあります。したがって、ワードサーチ #3 のタイミングで再生すると、特定のハイスコア テーブルが表示されます。同じパズルを時間制限なしでプレイすると、別のハイスコア テーブルが表示され、#4 の時間を制限してプレイすると、3 つ目のハイスコア テーブルが表示されます。
最後に、各ハイスコアには 1 人のユーザーがいます。
私が最初に作った方法は、各ゲームには多くのパズルとモードがあり、各パズルには多くのハイスコアがあり、各ハイスコアには 1 人のユーザーがいるというものでした。お分かりのように、これはあまり意味がありません。ハイスコアがパズルに属しているのに、モードに属していないのはなぜでしょうか? ハイスコアを表示するときは、Game->Puzzle->Highscore を表示し、ハイスコアのモード=現在のモードという条件を追加します。関係が明確なので、条件が必要な理由はありません。
だからこれは私が持っていたものです:
これを構造化するより良い方法は、パズルとモードとの HABTM 関係であることに気付きました。したがって、各ゲームには多くの mode_puzzle があり、各 mode_puzzle には 1 つのモード、1 つのパズル、および多くのハイスコアがあります。
したがって、次のように修正できます。
これに関する問題は、ゲームに新しいモードを追加したり、ゲームに新しいパズルを追加したりするときに、手動で作成する必要があるこの面倒な新しいテーブルに対処する必要があることです。新しいテーブル全体を作成することなく、この関係を保持します。各ゲームでは、どのモードでもどのパズルでもかまいませんが、なぜこのテーブルを手動で作成する必要があるのでしょうか?
人々はベイクを使用することを提案しましたが、私が見たところ、ベイクはモデルを自動生成しますが、テーブル自体を自動生成する必要があります。
解決策は結合などに関係していると感じていますが、MySQL結合やcakephpがそれらを処理する方法などについては経験がありません。また、各パズルには多くのモードがあり、各モードには多くのハイスコアがあると言われましたが、各パズルに多くのモードがあるか、各モードに多くのパズルがあるかに違いがないため、これを行いたくありません...そして私は構造全体なので、パズルごとにすべてのモードを繰り返す必要がある場合、またはその逆の場合、配列は巨大になります。誰でもこの問題の解決策を持っていますか?
mysql - MySQL の制約/カスケード: これは機能しますか?
テーブル - スレッド - と別の - 投稿があります。
各スレッドは、投稿が返信である件名のようなものです。スレッドが削除された場合、関連するすべての投稿を削除する必要があります。
すべての投稿には id フィールドと thread_id フィールドがあります。これが正しいかどうか疑問に思っているだけです。
これは逆にする必要がありますか、それとも完全に間違っているだけですか?
php - Laravel Eloquent ORM:belongs_to()を使用した1対多の問題
Laravel でリレーションシップにアクセスできません。この質問に関連して、2 つのテーブルがmessages
ありusers
ます。
messages
テーブルは次のようになります。
users
テーブルは次のようになります。
user_from
列と列はどちらも、メッセージを送信したユーザー (主キー) またはメッセージの送信先にuser_to
対応する int です。id
Message
私のモデルの関連部分は次のようになります。
User
私のモデルの関連部分は次のようになります。
ビューでは、メッセージを書いたユーザーにアクセスしようとしており、次のようなコードを書いています。
Trying to get property of non-object
その1行でエラーがスローされます。と$message
を除く他のすべてのプロパティが定義され、完全に出力されるため、オブジェクトが定義されていることがわかります。ドキュメントを何度か読みましたが、ここで何が間違っていたのかわかりません...誰かが誰かに突き出ていますか? これは教科書の例のようですが、うまくいきません。user_from
user_to
ビューにデータを渡す方法は次のとおりです。
mysql - 多形関係後方クエリlaravel 4
私は答えを求めてウェブを検索してきましたが、何も見つからなかったので、ここに問題があります:
私は3つのテーブルを持っています:
イベント トーナメント リーグ
イベントテーブル: id eventable_id eventable_type (リーグまたはトーナメント)
トーナメント テーブル: ID 名
リーグ テーブル: ID 名
私がしたいのは、名前 = イベント名を持つイベントを取得することです。
私は試した:
成功せずに。私は試した:
$event = Events::eventable()->where('name', '=', $event_name)->first();
成功せず、さまざまな方法を試しましたが、理解できません....
ありがとう、あら
ms-access - ms アクセスにおける多対多の関係
次のテーブルを含むデータベース(ペットシッター会社用)があります。
- お客様
- 緊急連絡先
- 電話番号
- 電話の種類
電話番号は別のテーブルに保存されるため、顧客ごとに事実上無制限の数の電話番号を効率的に保存できます。電話番号テーブルには、主キーに加えて、顧客 ID と電話タイプ ID の両方が格納されます。私の質問は、緊急連絡先が電話番号レコードと同じ機能を持ち、電話番号テーブル「緊急連絡先 ID」に別のフィールドを追加できるようにする最善の方法ですか? それとも、緊急連絡先を顧客と同じテーブルに保存する必要がありますか (そして個人の名前を変更します)? もしそうなら、同じテーブル内のレコード間の関係を作成する方法を教えてください。
どうもありがとう、ジェシカ