データベーステーブルの文字列をキーとして効率を考えています。私は "CREATE_ADMIN_USER"や "DELETE_NEWS_POST"のような派生クラスにハードコードされたコマンドキーを持っている私のアプリケーションでCommandという抽象クラスを持っています。文字列をテーブルキーとして使用して2つのテーブルに分割する効率性
これらのコマンドを実行できる役割など、データベースに格納したい設定がいくつかあります。より効率的である何
:最初の1の場合
CommandKey | Role
--------------------------
CREATE_ADMIN_USER | GodUser
DELETE_NEWS_POST | Admin
DELETE_NEWS_POST | Editor
OR
ID| CommandKey
--------------------------
1 | CREATE_ADMIN_USER
2 | DELETE_NEWS_POST
ID | Role
--------------------------
1 | GodUser
2 | Admin
3 | Editor
CommandKeyID | RoleId
---------------------
1 | 1
2 | 2
2 | 3
、没落は、コマンドキーの文字列のためのより多くの文字を格納する必要があるということです。これは、コマンドの数が1000を超え、多くのコマンドが複数ある場合は、スペースの問題になる可能性があります。
2番目の欠点は、3つのテーブル間で結合を作成する必要があることです。
2つの間でどちらが優先されるか(実際には好ましい方法がある場合):スペースを増やすか、3つのテーブルを結合します。
2番目の例では、どのようにこれらの2つのテーブルを結合する予定ですか?もう1つの結合テーブル? –