問題タブ [natural-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.
java - Hibernate: 継承による NaturalId
次のエンティティがあります (短いバージョン):
GroupOfStudents:
センチュリア:
コホート:
したがって、GroupOfStudents を含む CourseLecture があります。Centuria や Cohort など、さまざまな GroupOfStudents があります。しかし、コホートの数値フィールドを NaturalId にしたいと考えています。これにより、エラーが発生します。
しかし、ルート エンティティでのみ @NaturalId を使用できるのはなぜですか? クラスの継承を壊さずにこの問題を解決するにはどうすればよいですか?
java - @NaturalId がデータベースに一意の制約を作成しないのはなぜですか?
私は以下のEntity-Snippedを持っています
同じ名前のエンティティを 2 回永続化しようとすると、次のエラーが発生します (予想どおり)。
驚いたことに、データベースのテーブル制約を見ても、何も表示されません。一意の制約があってはいけませんか?
Postgres 9.3.2 休止状態 4.2.0
編集:状況を単純化するために事実を減らしたという事実により、この投稿は誤解を招く可能性があります. これを行うことで、この投稿に一貫性がなくなりました!!
@Vladは正しかったのですが、問題は別の場所にあることに気付きました。
私が書き忘れたのは、@NaturalId を使用するエンティティが他にもいくつかあるということです。Hibernate は、_UNIQUEKEY という名前のすべての制約を作成しようとします。(接頭辞がありません)
実際に作成されるのは最初の 1 つだけです。他のすべてのものはこの例外をスローします:
一意のキー名が正しく構築されていないように思えますが、おそらくバグでしょうか?
rest - REST API のリソース識別子としての電子メール アドレス
私のアプリケーションにはユーザーがいて、各ユーザーは電子メール アドレスによって一意に識別されるとします。その場合、自動インクリメント ID を主キーとして使用するのではなく、電子メールの自然キーを使用する方が理にかなっています。これは、ほとんどのシステムで一般的です。
それでは、REST API で、このように特定のユーザーにアクセスしてもよろしいでしょうか?
従来は の代わりにユーザー ID を使用してjohn@smith.com
いましたが、私のアプリケーションでは、電子メール アドレスがユーザー アカウントの一意の識別子です。
あなたなら何を選びますか?電子メールを REST URL の自然キーとして使用するか、代わりに使用するユーザー ID フィールドを作成しますか?
php - Phalcon PHP: 主自然キーを更新する
Phalcon で自然キーを持つテーブルを更新できるようにする良い方法はありますか?
次の表を検討してください。
person フィールドが一意であり、主キーであると仮定します。私は次のことをしようとします:
Phalcon がやろうとしているのは、既存のレコードを更新するのではなく、新しいレコードを挿入することです。私がする必要があるのは、更新することです... WHERE person = 'Ed';
考え?
ありがとう!
entity-framework - EF の DatabaseGenerated 属性を考慮するカスタム MvcView スキャフォールドを作成する方法
はい、EF 6.x エンティティを ViewModel であるかのように使用しているプロジェクトがあります。AutoMap はありません。リスクを調査して理解しています。
私のデータベースには多くの自然キーがあります。私の Code First POCO には、次のようなプロパティがあります。
スキャフォールディング テンプレートの編集を試しています (私のプロジェクトは、SideWaffle VSIX を介して 'CodeTemplates' ディレクトリを備えています)。具体的には、MvcView/Edit.vb.t4 用に既定で生成されるカミソリに影響を与えようとしています。
キーはモデル バインダーに反映する重要な情報であるため、デフォルトのスキャフォールドは非表示の入力をレンダリングしますが、それが DatabaseGeneratedOption.None の場合、追加の可視ラベルをレンダリングして、ユーザーが「ProfileId」が何であるかをすぐに理解できるようにしたいと考えています。 '編集中です。
言い換えれば、デフォルトの足場は、ビューでは面白くない代理キーを想定していますが、私のキーは私のビューにとって興味深いものです。
これを実現する System.Web.Mvc 名前空間の一部である <HiddenInput(DisplayValue:=True)> DataAnnotation には興味がありません。今のところ、EF プロジェクトを MVC ライブラリから解放したいと考えています。
Microsoft.AspNet.Scaffolding.Core.Metadata.ModelMetadata の型である、渡された ModelMetadata パラメーターから、現在の MVC スキャフォールディングが PropertyMetadata の型を反復処理する方法を簡単に確認できます。
しかし、System.Data.Metadata.Edm 名前空間から派生すると思われるこの DatabaseGenerated 属性を取得するにはどうすればよいでしょうか?
data-warehouse - ナチュラル キーとファクト テーブル
私は次元モデリングの初心者ですが、次の疑問についてあなたが助けてくれると信じています。
本番システムには、トランザクション テーブル、たとえば販売テーブルがあります。一意の識別子は、SaleId という主キーです。例:
私の疑問は、ファクト テーブルをモデル化するときに、SaleID をファクト テーブルに NaturalKey として含める必要があるかどうかです。
また、Fact テーブルには SurrogateKey が必要ですか?
参考までにリンクを貼っておきますので、よろしければどうぞ。前もって感謝します