問題タブ [database-relations]

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

ruby-on-rails - Mongoid:nil:NilClassの未定義のメソッド `name'、存在する場合でも

Rails 3.1とMongoidで1対多の関係を操作するときは、nil:NilClassの未定義のメソッド `name'が存在すると確信していても、頭をぶつけ続けます。ばかげた間違いか、Mongoidに何か問題があります。詳細にしましょう:

私はこのエラーを受け取り続けます:

そして、これをコンソールで再現しようとすると、うまく機能しているようです。本当に気が遠くなるような..

関連する場所からのコードは次のとおりです。

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

python - sqlalchemy を使用した複合キーの関係

私は Author - Books のこの単純なモデルを持っていますが、firstName と lastName を複合キーにして関係で使用する方法を見つけることができません。何か案は?

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

database - 複雑なデータベース関係 (ジャンクション テーブル)

私の質問は、同様に関連するテーブルのために、2 つのジャンクション テーブルを 1 つに結合するという考えについてです。私が何を意味するかを理解するために読んでください。また、これは実際に私が直面している問題であり、したがってこのフォーラムに関連していることにも注意してください。これは幅広い結果をもたらすトピックに過ぎず、さまざまな専門家からもう少し多くの参加を得て、「ベスト プラクティス」のより良い調査を行うことを望んでいます。

このかなり難しいデータベース設計の問題があります。これが、多くの人が貢献し、学ぶことができる wiki のようなものになることを願っています。これを簡単にするために、一連の図を作成し、問題を 1) プロセスと 2) 構造に分解します。

プロセスステップ

  1. ドキュメント (Publication) の要求 (DocRequest) が行われます。
  2. パブリケーションがまだ存在しない場合は、新しいパブリケーションが作成されます。
  3. 実行中のログ (StatusReport) は、要求を満たす進行状況のために保持されます。

注: 特定の発行物に対して、多数の DocRequest および StatusReport (更新を含む) が存在する場合があります。

データベース構造

注: DocRequest テーブルと StatusReport テーブルの両方に、添付の図には示されていない多数のフィールドとサポート テーブルがあります。さらに、特定の発行物は、それらのテーブル内のすべてのレコードが属するマスター レコードです。

-- 現在の実装 -- ここに画像の説明を入力

注: この設計の主な欠点は、新しい DocRequest レコードと StatusReport レコードのいずれかを作成するたびに、Publications テーブル (接合テーブルのように機能する) にも新しいレコードを作成する必要があることですが、これにより新しい Publication も作成されます。結果。これは望ましい動作ではありません。

-- 典型的な実装-- (このタイプの関係の場合) ここに画像の説明を入力

注: これは問題なく、おそらく理想的ですが、DocRequest テーブルと StatusReport テーブルのいずれかに対する更新を処理し、それらが属するパブリケーションに個別にリンクします。

--私の推奨する実装-- (この特殊なケースの場合) ここに画像の説明を入力

注: ここで私が思いついたのは、単純にデュアル ジャンクション テーブルを 1 つに結合することでした。この場合、ジャンクション テーブルは、DocRequest または StatusReport で挿入が発生するたびに新しいレコードを取得します。私はおそらくこれをトリガーで処理します。

討論

では、議論を始めましょう。これが悪い考えであると思われる場合は、仲間のデータベース開発者に知らせてください。また、これによりどのような問題が発生する可能性があるかを知りたいです。レコードの正味数は、2 つの別個のジャンクション テーブルの場合と同じである必要があり、実際には、追加の ID 列を節約することで使用するスペースがわずかに少なくなると思います。:)

皆さんの考えを教えてください。多くの方にこの議論に参加していただきたいと思います。乾杯!:)

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

histogram - R のヒストグラムが与えられた場合の、リレーション R の自己結合操作の推定サイズ

クエリ オプティマイザは通常、データ分散の概要を使用して、クエリ処理中に生成される中間テーブルのサイズを見積もります。このような一般的な要約スキームの 1 つはヒストグラムです。これにより、入力範囲がバケットに分割され、各バケットに含まれるタプルの数の累積カウントが維持されます。バケット内の分布は、推定のために均一であると想定されます。

R次の図は、ドメイン を持つ離散属性 aのリレーションのヒストグラムの 1 つを示しています[1..10]

自己結合操作の推定サイズ R x R

ソリューションで与えられた答え:B

答えはどのように計算されますか?

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

postgresql - postgres ユーザーとしてログインしている場合、postgreSQL のリレーションまたはテーブルしか表示されないのはなぜですか?

重複の可能性:
postgresql データベースの所有者がデータベースにアクセスできない - 「関係が見つかりません。」

中心的な問題: Django の Web サイトで、 Djangoによって生成された SQL スクリプトを実行しようとしたに接続すると、リレーション (テーブル) が存在しないという不平を言っています。pg_dump MY_DATABASE_NAME -cOx -E UTF8 > MY_SCRIPT_NAME.sql

スクリプトを実行する前に、私は接続することができ、すべてがうまくいっています。

スクリプトを実行した後、私は痛みの世界に住んでいますが、PostgreSQL ですべてのテーブルの所有者を同時に変更するで説明されているさまざまな方法を使用して、MY_DATABASE_NAME とテーブルの所有権を調べて変更することで軽減しようとしました。

\dt次のようにサーバーにpostgresユーザーとして最初にログインした後にのみ、MY_DATABASE_NAME経由でのみリレーションを表示できるようですsudo su - postgres

postgres ユーザーに切り替えpsql MY_DATABASE_NAME -U MY_NON_POSTGRES_USER に SSH で実行すると、\dt' results in a関係が見つかりませんというメッセージが表示されます。

最初は、権限または所有権が問題であると推測しました。サーバーの postgres ユーザーとしてログインし、MY_DATABASE_NAME とそのすべてのテーブルの所有者を MY_NON_POSTGRES_USER に変更しました。

前と同じ結果。Postgres ユーザーのリレーションが表示されますが、別のロールとしてログインすると「リレーションが見つかりません」というメッセージが表示され、Web サイトで「リレーション some_table が存在しません」と不平を言われます

なぜこれが私に起こっているのですか?

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

cakephp - 非従来型データベースとの CakePHP の関連付け

アプリケーションを CakePHP 2.0.3 で使用できるように変換しています。何らかの理由で、モデル間に適切な関係を設定できないようです。

次に例を示します。

  • ユーザー (id、petid、country、picid、...)
  • ペット (id、userid、picid、...)
  • 画像 (id、albumid、....)
  • アルバム (id、userid、petid、...)

これらの意味は次のとおりです。 - ユーザーは複数のペットを持つことができますが、同時に選択できるペットは 1 つだけです (したがって、User の petid)

- ペットは 1 人のユーザーに属します

- ペットとユーザーは複数の写真を持つことができますが、プロフィール写真は 1 つだけなので、Pet.picid と User.picid

- ペットとユーザーは複数のアルバムを持つことができます

CakePHP でモデルをセットアップしましたが、データベースが規則に従っていないため、それらの間でどの関係を使用すればよいかわかりません。私は次のことを試しました:

  • ユーザー
    -> hasMany(ペット)
    -> hasOne(写真)
    -> hasMany(アルバム)

  • Pet
    -> belongsTo(User) (foreignkey ユーザー ID で正常に動作)
    -> hasMany(Album)
    -> hasOne(Picture)

  • アルバム
    -> hasMany(写真)

---- これを達成するためのロジックは? ユーザーまたはペットのいずれかに属します-----

-> 所属先 (ユーザー)
-> 所属先 (ペット)

  • 写真
    -> 所属先(アルバム)

私は CakePHP が初めてで、ここに行く方法がわかりません。何か提案はありますか?

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

ruby-on-rails - アクティブな記録関係 – 誰がそれを必要としますか?

さて、私はレールクエリについて混乱しています。例えば:

今すぐこれを行うことができます:

また

多くのアフィッチがある場合、多くの余分な SELECT を取得します。

そして (sic!) :joinsused everySELECTは 2 倍になります!

技術的には、クラウドは次のように記述します。

結果はまったく同じです!(関係が宣言されているため)。すべてのデータを 1 つのクエリに保持する方法は、リレーションを削除して「LEFT OUTER JOIN」で大きな文字列を書き込むことですが、それでもデータを多次元配列にグループ化する問題や、id.

何が間違っていますか?または、私は何を間違っていますか?

アップデート:

さて、私はその文字列Place Load (2.5ms) SELECT "places".* FROM "places" WHERE ("places"."id" IN (3,444,222,57,663,32,154,20))と選択のリストを1つずつ持っていますideach奇妙ですが、スコープ内でこれを行うと、これらの個別の選択が得られます。

マークされa.placeているのは、これらの追加のクエリを生成するスポットです。

更新 2:

そして、私にいくつかの計算をさせてください。コンソールには次のものがあります。

結果: 1.8 ミリ秒と 4.1 ミリ秒、かなり紛らわしいです...

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

c# - DataSet で外部キーを探す

foreign keysデータ セット内のすべてを検索する方法はありますか?

すべての関係を探す方法があることは知っています:

propteryだけに似たものはありforeign keysますか?

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

c# - EF 4.3 コードの最初の 1 対 1 の関係

最初に EF 4.3 コードで動作する 1 対 1 の関係を取得するのに問題があるため、以下のコードの何が問題なのか誰か教えてください。

あらゆる種類のことを試し、foreignkey 属性を追加し、いくつかの ID を (un) コメントし、次のサンプルを試しました。結果は常に次のとおりでした: データベースの ID が正しくないか、データベースを作成しません。

前もって感謝します。

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

sql - Squirrelを使用したSQLiteデータベース:関係なし

私が持っているもの:

接続のあるSQLiteデータベースがあります。sql createコードの一部を次に示します(宛先とlog_entriesテーブル間の多対多接続)。

ご覧のとおり、外部キーとの関係を定義しました。

Firefoxアドインのデータベースの場合、SQLiteManagerの[接続時SQL]タブで次のキーを設定しました。*PRAGMAforeign_keys = ON; *

私の問題は何ですか: 私は複雑なSQLクエリの記述があまり得意ではないため、グラフィックツールでクエリを設計する必要があります。私の決断はSQuirreLでした。SQLite用のJDBCドライバーをダウンロードしました。

SQuirreLで、すべてのテーブルをグラフに送信すると、're関係が表示されません。クエリビルダーツールでも。SQLite-Squirrelコンボの経験はありますか?sqlite用の代替クエリデザイナツールはありますか?または、最も簡単な方法は、たとえばAccessでSQLクリエータースクリプトを実行し、そこでクエリを設計することです。