django モデル ユニークな組み合わせの例
2022-03-02 11:58:58
ユニークトギャザー
このメタデータは非常に重要なものです! これは、データベースでは和集合制約に相当します!
たとえば、名前、生年月日、性別、出身地などを記載したユーザーのテーブルがあるとします。要件は、すべてのユーザーがユニークで重複しないことですが、"Zhang Wei"という名前のユーザーが複数いる場合、どのように区別するのでしょうか。(主キーのユニークさについて私に話さないでください、ここで話しているのはそういうことではありません)
この結合制約を使って、データベースがユーザーを繰り返し追加できないようにすることができます(確率が小さいという話はしないでください)。この制約を Django のモデルでどのように実装するのでしょうか?
使用方法
unique_together
という意味です。
例えば、こんな感じです。
unique_together = (('name', 'birth_day', 'address'),)
このように、同じ日に生まれたチャン・ウェイが2人いたとしても、出自が違うので、2人のユーザーがいることになります。3つとも同じになると、Djangoによって作成が拒否されます。このメタデータは管理者バックエンドでよく使われ、データベースレベルで強制的に適用されます。
unique_togetherは2次元タプル((xx,xx,xx,...) ,(),(),()...)を取ります。で、その各要素はタプルで、結合一意制約のセットを表し、複数の制約セットを同時に設定することができる。便宜上、制約のセットが1つしかない場合は、単純に1次元の要素を使用することができ、例えば
unique_together = ('name', 'birth_day', 'address')
通常の多対多のフィールドでは、ユニオンは一意には機能しません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例