問題タブ [surrogate-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.
apache-pig - カスタム ランクを使用して PIG で代理キーを生成する
私は毎日PIG変換を行います(毎日新しいデータ)。そして、毎日取得するデータの一意のキーを生成する必要があります。最善のアプローチは何ですか?tomarow のランクを実行すると、今日のランクが上書きされますか?
mysql - GUID キーを使用してテーブルのデータをページングする方法
GUID をキーとして持つ以下のようなテーブルがあります。 GUID をキーとするページングを使用して tis のコンテンツを表示しようとしていますが、どうすればよいでしょうか?
それが Int キーの場合、ストアド プロシージャは次のようになり、desc で次の 10 の順序が得られます。しかし、GUID では、そのタイプのページングを行う方法がわかりません。
jpa - JPA - 多対多テーブルでの複合キーと生成された ID
私は一種のソーシャル ネットワークを作成しており、他のユーザーをフォローできるユーザーがいます。だから私は次のようなエンティティを持っています:
FollowedUser エンティティに複数のフィールドがあるため、ManyToMany 関係を持つことはできません。今、私が持っている質問は次のとおりです。
- 複合キーまたは生成された ID (代理キー) を使用する必要がありますか? 代理キーが提案されているトピックに関する次のリンク ( 1、2、3 ) を読みましたが、具体的なケース (複合キーが 2 つの代理外部キーで構成される場合) に適用されるかどうかはわかりません。 . また、ここ( 4 )には、「複合主キーは通常、レガシーデータベースからマッピングするときに発生する」と書かれているため、推奨されていないと思います。
- 複合キーを使用する必要がある場合、 @IdClass (ここで推奨5 ) または @EmbeddedId (ここで推奨6 ) またはその他のオプションを使用する必要があるかどうかわかりません。私はそれが問題ではないと思いますが。
- 代理キーを使用する必要がある場合、複合候補キーを繰り返さないようにする方法がわかりません。ここ ( 7 ) で一意のインデックスについて読みましたが、それがその問題の正しい回避策であるかどうかはわかりません。
data-warehouse - データ ウェアハウスの代理キー
DWH 環境における代理キーの一般的な概念を理解しています。しかし、私が理解できず、情報を見つけることができなかった2つの側面があります。
- 代理キーがDWH 全体で一意であること、または1 つの Dimension で一意であることはよくあることですか?
- 階層を持つディメンションがある場合、その階層は代理キーの生成に影響しますか?
many-to-many - 代理キーの適切な使用?
特定の国に多くの観光スポット (モニュメント、公園、博物館) があるとします。もちろん、特定の観光スポットが多くの州に存在する可能性があります。
論理 ERD モデルに関しては、M:N 関係の間でジャンクション テーブルを使用する必要があります。
しかし、単純に隣接する 2 つのテーブルの PK をジャンクション テーブルの PK として使用するだけで十分でしょうか?
つまり、COUNTRY、SIGHTS、および SIGHT_TYPE テーブルがあり、SIGHTS はジャンクション テーブルです。特定の国に複数の博物館があると仮定すると (つまり、MUSEUM は SIGHT_TYPE です)、これは SIGHTS テーブルの各レコードを一意に識別できないことを意味しますね。
つまり、MUSEUM の SIGHT_TYPE_ID が 2 で、GERMANY の country_id が 22 であると仮定します。複数の美術館の場合、上記が当てはまる場合、これは発生しませんか? 22 2 - ミュージアム A 22 2 - ミュージアム B
したがって、SIGHT_ID などの代理キーの使用は、この場合、一意の識別子として機能するために絶対に不可欠ですか?
つまり、隣接する2つのテーブルのPKを結合テーブルや複合テーブルのPKとして利用するのが一般的ですが、このような場合は例外なのでしょうか?
ありがとうございました
java - 2 つの多対多テーブルを結合する
Java ベースの Web アプリケーションに適切なデータベース設計を定義するのに問題があります。3 つのテーブル (タグ、DT、およびプロパティ) があり、シナリオは次のとおりです。各タグには多くの Dt を含めることができ、各 DT は異なるタグに割り当てることができます。各 DT には多くのプロパティがあり、各プロパティは多くの DT で使用できます。DT がタグに割り当てられると、ユーザーはそのすべてのプロパティの値を設定できます。
私の質問は、割り当てられた DT に基づいて各タグがそのプロパティの値を持つことができるように、どのように関係を定義できるかということです。私の設計で不足しているテーブルと関係は何ですか。次に、このデータベースに基づいて相対エンティティを作成する必要があります。
これがdbダイアグラムです。そして、事前にご協力いただきありがとうございます。
ここにいくつかのサンプルデータがあります
primary-key - テーブル (2 つのフィールドで構成される) に既存のインデックスをプライマリ インデックスとして追加しますか? 斧 2012
テーブルには、Code1 と Code2 の 2 つのフィールドを持つインデックス TestIndex があります。
インデックス プロパティ: 重複を許可:いいえ、AlternateKey: はい
フィールド プロパティ: 必須:はい AllowEdit:いいえ
Table Properties PrimaryIndex:SurrogateKey に到達したとき。この PrimaryIndex を TestIndex に変更したいと思います。しかし、DropDown をクリックすると、TestIndex 値が表示されません。手動で TestIndex を入力してクリックすると、表示されている TestIndex を入力します。しかし、ドロップダウンをクリックすると、testIndex が表示されません。
なんで?私が行った手動のことは間違っていますか、それとも正しいですか?
primaryIndex のドロップダウンで TestIndex を取得するにはどうすればよいですか?