問題タブ [shared-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 に答える
26 参照

mysql - 組み合わせプライマリ Mysql の作成

非常にカスタムの主キーを作成しようとしています。たとえば 、主キー (tble_id) を列の組み合わせにしたい列があります[table_1]: . たとえば、主キーは:で、この場合は日付、時刻、カード番号です。tble_id, date_entered, time_entered, card_number, name, address.date_entered, time_entered, card_number201408271701000120140827170100001

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

mysql - 外部キーを主キーとして使用するための設計上の考慮事項

あるテーブルの外部キーを別のテーブルの主キーとして使用するための一般的な設計上の考慮事項 (良い/悪い/中立) はありますか?

たとえば、映画カタログの一部として次のテーブルがあるとします。

エピソードは明らかに id と title_id の両方で実行できます。id は PK で、title_id は UNIQUE になりますが、title_id はすでに一意であり、技術的にはエピソードを識別しているため、それを使用するだけで考慮すべきことはありますか? PKとして?一般的にはどうですか?これには、どのような設計上の考慮事項がありますか?

ご感想ありがとうございます!

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

mysql - mysqlで1対1の関係を作る方法

私の質問は

MySQL で 1 対 1 の関係を作るには何が正しいですか?

子テーブル内のデータは一意である必要があります これを行うことについて、インターネット上で紛らわしい情報が存在します。私の意見では、最初の形式の方が簡単なので正しいです。

私が見つけた別の方法

何が正しいですか

メキシコからこんにちわ!!!!

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

database-design - テーブルを他の 2 つのテーブルのうちの 1 つに関連付けるためのデータベース設計

一部のユーザーとエージェントを含むデータベースがあり、単純なメッセージ システムを追加したいと考えています。

したがって、次の単純なテーブルセットがあります。

私が持っていないのは、メッセージとメッセージを投稿した個人からの関係です。

ユーザーまたはエージェントである可能性があるため、少し行き詰まっているところがあります。これは、解決すべき受け入れられたパターンの一般的な問題であるに違いないと思いますが、そのような議論は見つかりませんでした。

いくつかのオプションがあることはわかっていますが、それらにはすべて短所があります。

オプション 1: メッセージが 2 つの異なるアカウントにリンクされる可能性があるのは好きではありません。

オプション 2: これにより、SELECT の 1 つの列ですべてのメッセージを取得することが難しくなります。

ユーザーとエージェントを 1 つのテーブルにまとめることができないことの 1 つです。それは石に設定されています。

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

mysql - 主キーとしての自然キーのcrc32

TCG カードのデータベースがあり、主キーを決定しようとしています。最初は代理キーで解決しましたが、プロモーション カードなど、追加し忘れているカードがあることに気付きました。代理キーは最新の自動インクリメントでデータベースに追加され、挿入された順序に ID を依存させたくなかったため、これは問題です。カードの機能の一部をハッシュして、代わりにそれを主キーとして使用できるのではないかと考えていました。

たとえば、次の擬似コードを見てください。

カードの可能な量は、現在約 25k で推移しており、6 か月ごとに約 100 ~ 300 増加しています。

  1. このままじゃ衝突しないよね?
  2. これは良い習慣ですか?他に良い代替手段はありますか?

に変換することでハッシュを短くできることはわかっていますが、これらをユーザーのインベントリ テーブルに結合するので、これらを維持することが最善の選択肢になるbase 62と思います。int

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

hibernate - JPA のカスタム主キー ジェネレーター

org.hibernate.id.IdentifierGenerator次のように主キー列を生成するために使用しています。次の例では、現在、タイプINT(11)(MySQL) のキーを順次インクリメントするだけです。つまりauto_increment、MySQL と同様ですが、E0001、E0002、E0003 ... E0010 ... などの任意のカスタム パターンの値を生成するために使用できます。 E0100 ... E1000 ... E12345 ...

Test上記の ID ジェネレーターを使用するエンティティ:

ただし、これは Hibernate 固有の機能です。プロバイダーに依存しないようにする方法はありますか。つまり、JPA (2.1) でそのような機能を利用できますか?

JPA 2.1を搭載したHibernate 5.1.0 finalを使用しています。


このアプローチは、エンティティの永続化、マージ、削除中に同時実行の問題を引き起こし、何らかのロックを必要としますか?