問題タブ [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.

0 投票する
4 に答える
18940 参照

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でも可能ですか?

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

aggregate-functions - 複数のテーブルにまたがるDjangoクエリの式の集約

Django ORMクエリの関連テーブルからフィールドの式(例:減算)の集計(例:合計)を計算することは可能ですか?

私が達成しようとしていることの完全な例については、この動作するSQLFiddleを参照してください。私はそれを2つの質問に分けました(他の1つはここにあります)。この場合、Sequence数列を表すモデルとPart、この数列の「リンク」を表すモデルがあります。

したがって、それぞれがデルタPartを表します。これは、シーケンス内の2つの値の差です。(連続していない)パーツのセットがあり、それらのデルタの合計を計算したいと思います。このようなもの:

しかし、単一のクエリでは(理由は、これをより複雑なクエリのサブクエリとして使用したいためです)。SQLでそれを行うのは簡単です:

DjangoORMを使用してそれを行う方法がわかりません。私は単一の値でそれを行うことができます:

ただし、複数の値を含む式の場合はそうではありません。使用F() はまだサポートされていないので、別の方法を探しています。集合体の式に関するこの質問も調べましたが、関心のあるフィールドが同じテーブルではなく関連するテーブルにあるため、受け入れられた回答(を使用extra)は私のケースAFAIKには適用されません。 。

誰かがそれを実験したい場合に備えて、これがSSCCEです:ダウンロードまたは参照。上記でリンクされているSQLフィドルと同じモデルとデータがあります。

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

mysql - この CakePHP アプリのモデル関係はどうあるべきですか?

これをどのように構成するかを理解するのに苦労しています。これが私のアプリです:

それはゲームのウェブサイトです...ゲームは「単語検索」、「数独」、「クロスワードパズル」です。

各ゲームには多くのパズルがあります。つまり、100 ほどの単語検索、100 ほどの数独などがあります。

各ゲームには多くのモードもあります。したがって、各単語検索を実行する方法は 5 つほどあります (時間指定、時間指定なしなど)、数独を再生する 5 つの方法などがあります。

各ゲームモードとパズルの組み合わせには、多くのハイスコアがあります。したがって、ワードサーチ #3 のタイミングで再生すると、特定のハイスコア テーブルが表示されます。同じパズルを時間制限なしでプレイすると、別のハイスコア テーブルが表示され、#4 の時間を制限してプレイすると、3 つ目のハイスコア テーブルが表示されます。

最後に、各ハイスコアには 1 人のユーザーがいます。

私が最初に作った方法は、各ゲームには多くのパズルとモードがあり、各パズルには多くのハイスコアがあり、各ハイスコアには 1 人のユーザーがいるというものでした。お分かりのように、これはあまり意味がありません。ハイスコアがパズルに属しているのに、モードに属していないのはなぜでしょうか? ハイスコ​​アを表示するときは、Game->Puzzle->Highscore を表示し、ハイスコアのモード=現在のモードという条件を追加します。関係が明確なので、条件が必要な理由はありません。

だからこれは私が持っていたものです:

これを構造化するより良い方法は、パズルとモードとの HABTM 関係であることに気付きました。したがって、各ゲームには多くの mode_puzzle があり、各 mode_puzzle には 1 つのモード、1 つのパズル、および多くのハイスコアがあります。

したがって、次のように修正できます。

これに関する問題は、ゲームに新しいモードを追加したり、ゲームに新しいパズルを追加したりするときに、手動で作成する必要があるこの面倒な新しいテーブルに対処する必要があることです。新しいテーブル全体を作成することなく、この関係を保持します。各ゲームでは、どのモードでもどのパズルでもかまいませんが、なぜこのテーブルを手動で作成する必要があるのでしょうか?

人々はベイクを使用することを提案しましたが、私が見たところ、ベイクはモデルを自動生成しますが、テーブル自体を自動生成する必要があります。

解決策は結合などに関係していると感じていますが、MySQL結合やcakephpがそれらを処理する方法などについては経験がありません。また、各パズルには多くのモードがあり、各モードには多くのハイスコアがあると言われましたが、各パズルに多くのモードがあるか、各モードに多くのパズルがあるかに違いがないため、これを行いたくありません...そして私は構造全体なので、パズルごとにすべてのモードを繰り返す必要がある場合、またはその逆の場合、配列は巨大になります。誰でもこの問題の解決策を持っていますか?

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

mysql - MySQL の制約/カスケード: これは機能しますか?

テーブル - スレッド - と別の - 投稿があります。

各スレッドは、投稿が返信である件名のようなものです。スレッドが削除された場合、関連するすべての投稿を削除する必要があります。

すべての投稿には id フィールドと thread_id フィールドがあります。これが正しいかどうか疑問に思っているだけです。

これは逆にする必要がありますか、それとも完全に間違っているだけですか?

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

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_fromuser_to

ビューにデータを渡す方法は次のとおりです。

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

mysql - 多形関係後方クエリlaravel 4

私は答えを求めてウェブを検索してきましたが、何も見つからなかったので、ここに問題があります:

私は3つのテーブルを持っています:

イベント トーナメント リーグ

イベントテーブル: id eventable_id eventable_type (リーグまたはトーナメント)

トーナメント テーブル: ID 名

リーグ テーブル: ID 名

私がしたいのは、名前 = イベント名を持つイベントを取得することです。

私は試した:

成功せずに。私は試した:

$event = Events::eventable()->where('name', '=', $event_name)->first();

成功せず、さまざまな方法を試しましたが、理解できません....

ありがとう、あら

0 投票する
3 に答える
1434 参照

ms-access - ms アクセスにおける多対多の関係

次のテーブルを含むデータベース(ペットシッター会社用)があります。

  • お客様
  • 緊急連絡先
  • 電話番号
  • 電話の種類

電話番号は別のテーブルに保存されるため、顧客ごとに事実上無制限の数の電話番号を効率的に保存できます。電話番号テーブルには、主キーに加えて、顧客 ID と電話タイプ ID の両方が格納されます。私の質問は、緊急連絡先が電話番号レコードと同じ機能を持ち、電話番号テーブル「緊急連絡先 ID」に別のフィールドを追加できるようにする最善の方法ですか? それとも、緊急連絡先を顧客と同じテーブルに保存する必要がありますか (そして個人の名前を変更します)? もしそうなら、同じテーブル内のレコード間の関係を作成する方法を教えてください。

どうもありがとう、ジェシカ