問題タブ [composite-primary-key]

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

.net - EF Code First、静的部分を持つ複合外部キー

既存の SQL DB での EF 4.2 Code First に問題があります。

企業、ユーザーなどの複数のエンティティがあります。

共通の情報は、主キー [EntityId, EntityTypeId] を持つエンティティと呼ばれる別のテーブルに格納されます。

  • EntityId は、CorporateId、UserId などに対応します。
  • EntityTypeId は、エンティティ間の識別子のように使用される静的 ID です。

次のクラス設計があります。

ご覧のとおり、EntityTypeId は静的プロパティであり、ユーザー テーブルには対応する列がありません。

マップ:

このコードを実行すると、エラーが発生します: System.Data.SqlClient.SqlException: Invalid column name 'EntityTypeId'.

User テーブルに EntityTypeId 列が存在しないためだと思います。テーブルにこの列を作成できないので、この問題を回避する方法はありますか?!

どうもありがとう

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

ruby-on-rails - 複合主キー(id + parent_id)を持つRails3.1ネストされたリソース

次のように、routes.rbにネストされた2つのリソースが必要であると仮定します。

慣例により、 comments.idはコメントの主キーになり、comments.post_id外部キーになります。

主キー複合キー [comments.post_id、comments.id]である必要があります。

id == 1の個別の投稿の最初のコメントをすべて持つことができるように、id==2の個別の投稿の2番目のコメントごとに...

もちろん、コメント(子リソース)を参照するすべてのルートを、その投稿(親リソース)も参照せずに無効にする必要があります。

これは単なる例です。私の実際のプロジェクトはブログに関するものではありません(この問題は別の方法で処理しました)。互換性を実現するために、ネストされたリソースに対してこのような動作を実現する方法があるかどうかを知りたいです。レガシーデータベースを使用します。

ありがとうございました。

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

entity-framework - 主キーなしでエンティティ モデルにテーブルを追加することはできません

エンティティ データ モデルの使用に問題があります。主キーを持たないエンティティ モデルにテーブルを追加できません。同じ状況は、複合キーを持つテーブルにも当てはまります。

0 投票する
6 に答える
200571 参照

sql - SQL構文を使用して主キー制約を変更するにはどうすればよいですか?

主キー制約に列がないテーブルがあります。SQL Serverで編集するのではなく、これをスクリプトに入れて、更新スクリプトの一部として追加したいと思います。

これを行うためにどの構文を使用できますか?キー制約を削除して再作成する必要がありますか?

0 投票する
5 に答える
9511 参照

sql - SQL主キー-必要ですか?

アイテムのリストがあります。これらの商品のほとんどは在庫がありません。アイテムテーブルには、ID、名前、説明があります。アイテムの数量は、inventoryという名前の別のテーブルに保存されます。在庫テーブルには、item_idと在庫のあるアイテムの数量が含まれています。

インベントリテーブルの主キーは必要ですか?もしそうなら、私はシリアルまたは複合キーを使用する必要がありますか?テーブルに主キーがなくても大丈夫なのはいつですか。

編集:非常に有益であるためにすべてに感謝します。非常にまれな例外を除いて、私は常に主キーを持っています。また、シリアルキーとコンポジットキーについてもう少し学びました。

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

mysql - この状況で自然キーと複合キーのどちらが優れているか

何百万もの投稿を (近い将来) mysql に格納する必要があるテーブルがあります。これが単純化された構造です(私の質問はそれに基づいているため、主キーを示しませんでした):

私の質問は次のとおりです。キーを定義する最良の方法は何ですか?

  1. 保存する必要があるレコードの量を考慮すると、 my AUTO_INCREMENTing ' ' をプライマリおよび一意のキーとしてのみ使用するのが最善ですか?post_id

  2. post_id' ' と ' ' の両方user_idを複合キーとして使用して、主キーおよび一意のキーとして使用する必要がありますか? これが最善の場合、他のテーブルで外部キーとして使用するにはどうすればよいですか? これらのテーブルに列として追加するだけですか?

また、それぞれの長所と短所 (ある場合) と、使用するエンジンに関するアドバイスを教えてください。2番目のオプションを使用する場合、Innodbが最適だと思います。知らない。

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

mysql - 日付/時刻を扱うときの複合主キーまたはサロゲート

私はこれについて多くの議論を見てきました。これに関するあなたの提案を求めているだけです。基本的に使っているのはPHPとMySQLです。私はusers行くテーブルを持っています:

ユーザーによる更新を格納する別のテーブル

ユーザーのプロファイル ページには、ユーザーの最新の 5 つの更新が表示されます。質問は次のとおりです。

  1. updatesテーブルの場合、uid と日付の両方を uid を参照するuid持つ複合主キーとして設定できますか?users
  2. または、自動インクリメントし、主キーとして使用される別の列を作成する方がよいでしょうかupdates(一方、uid は uid の FK になりますusers)。
0 投票する
6 に答える
373058 参照

mysql - 複合主キーを追加する ALTER TABLE

というテーブルがありますproviderpersonplace、という 3 つの列がありますthing。重複する人、重複する場所、重複する物が存在する可能性がありますが、重複する人、場所、物の組み合わせは決して存在しません。

これらの 3 つの列を使用して、MySQL でこのテーブルの複合主キーを追加するには、どのように ALTER TABLE を実行しますか?

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

composite-key - Teradata Database:一意の複合キーは可能ですか?

コンポジットキーを実際に使用するのはこれが初めてです。3つの外部キー列で構成されるレコードがあります。これらの3つのキーの組み合わせは一意である必要があります。重複するレコードが挿入された場合、それが一意の単一フィールドの主キーであるかのように、制約エラーがスローされます。

これはTeradataデータベース用です。

0 投票する
0 に答える
668 参照

sqlalchemy - Sqlalchemy: 複数列の主キーのキー長を設定するにはどうすればよいですか?

mysql_length = xxxインデックスの長さを設定するために使用できることを知っています。

しかし、この制約を複数列の主キーに適用するにはどうすればよいでしょうか? (使用PrimaryKeyConstraint)

PS: 私の primay 列は A、B です (A は an Integer、B は aString(256)です。問題は、複合キーに追加されたときにそれを削減する方法です)