私は、ユーザーの表示設定を表すモデルを持っています。これらのプリファレンスのほとんどはブール値です。ブール型の列を50個持つ代わりに、これについてもっと良い方法がありますか?将来、新しい項目を追加する場合、データベースに新しい列を追加する必要はありません。djangoモデルで多くのブール値を表現する最良の方法は何ですか?
0
A
答えて
1
"将来、新しいアイテムを追加するときは、データベースに新しい列を追加する必要はありません。"
この場合、行を追加する必要があります。
可能な設定名のドメインを持つテーブルがあります。 50行。
実際の設定の表があります。ユーザー、設定名、設定値。
0
多くのブール値を持ち、さらに追加する予定がある場合は、列は使用しないでください。
「ユーザーが電子メールを望んでいます」を参照する必要があるときは、UserPreferencesオブジェクト(User = user、Preference = Preferences.objects.get(name = "want e-mail"))を検索してください。
User_Table:
- ユーザー
- ユーザ名
- など
Preferences_Table:
- 名
- 説明
- など
UserPreferences_Table:
- ユーザー(FK_User)
- 設定によって優先(FK_Preferences)
- 設定(ブール)
、あなたがかもしれUserPreferencesテーブルのSettingフィールドを省略し、単にenの存在を使用することができますそのUser/PreferenceをTrue、もう一つがFalseでないものとして試してみてください。
1
ビットマップを使用することもできます。あなたはあなたのデータベース内に単一のcharフィールドしか必要としません。あなたのアプリのどこかには、pref1、pref2、pref3のリストが保存されています。ビットマップには、設定に対応する1と0のシーケンスが格納されます。
たとえば、101はpref1 = yes、pref2 = no、pref3 = yesを意味し、011はpref1 = no、pref2 = yes、pref3 = yesを意味します。
これは、ビットマップの新しいモデルフィールドタイプを作成することで再利用可能にすることができます。
関連する問題
- 1. バイナリデータを表現する最良の方法は何ですか?
- 2. リレーショナルデータベース内で制約の多い多対多関係を表現する最良の方法は何ですか?
- 3. ErlangでC配列を表現する最良の方法は何ですか?
- 4. XMLでツリーを表現する最良の方法は何ですか?
- 5. YAMLで定数を表現する最良の方法は何ですか?
- 6. 多くのZ-インデックスパラメータを扱う最良の方法は何ですか?
- 7. Flexモバイルアプリケーションで多くのテキストを表示する最も良い方法は何ですか?
- 8. djangoでクエリーセットのリストを作成する最良の方法は何ですか?
- 9. DjangoモデルのjsonFieldのキー値を制限する最良の方法は
- 10. Django 1.5を学ぶ最も良い方法は何ですか?
- 11. マルチパートの質問をモデル化する最良の方法は何ですか
- 12. 多数のRubyプロセスを監視する最良の方法は何ですか?
- 13. Djangoで多言語の "ログメッセージ"を作成する最も良い方法は何ですか?
- 14. 多くのテキストデータを保存する最良の方法は何ですか? MySQL/Jsonファイルですか?
- 15. ブール変数を切り替える最も良い方法は何ですか?
- 16. django管理者に関連するモデルを保存する最良の方法は何ですか?
- 17. Djangoからデータを投稿する最良の方法は何ですか?
- 18. ViewPagerでエラスティック/バウンスアニメーションエフェクトを実現する最良の方法は何ですか?
- 19. 在庫モデルを作成する最良の方法は何ですか?
- 20. Rails:これをモデル化する最良の方法は何ですか?
- 21. アプリに多言語を実装する最良の方法は何ですか?
- 22. 値のテーブルのシーケンスをモデル化する良い方法は何ですか?
- 23. 現状のキャパシティを計算する最良の方法は何ですか?
- 24. ストアドプロシージャをDjangoユニットテストデータベースにロードする最良の方法は何ですか?
- 25. Djangoのobjects.getを処理する最も良い方法は何ですか?
- 26. CakePHP - 数多くのAPI呼び出しをモデル化する最良の方法
- 27. 世界中のすべての国をAndroidで表現する最良の方法は何ですか?
- 28. 多くのアプリケーションで電子メール配信を処理する最良の方法は何ですか?
- 29. Sklearnモデルを保存する最も良い方法は何ですか?
- 30. mongoDB - 多くの場所の入り口/出口ポリゴンイベントをチェックする最良の方法は何ですか?
「最適」とは、「最も拡張可能」を意味します。 –