2016-09-01 9 views
0

私は5列(id、name、role、created_At、update_at)のroleというテーブルを持っています。 私はデータベースを作成する必要があります=> 'Adinistrador'、EMPLOYEE => 'Colaborador'in databse。そして私は管理者である場合、私はverifieにアクセスする必要がありますが、私はクエリを以下のようにsmetingします: table-> role(ADMINISTRATOR);Laravel 5.2データベース付きenums

データベースで列挙する方法はより良い方法ですか?

答えて

1

dbテーブルの列挙型を使用することには大きな欠点があります。新しい値を追加する必要がある場合は、テーブルを変更する必要があります。テーブルに行がたくさんある場合、操作にかなりの時間がかかることがあります。私は個人的には、tinyintフィールドをテーブルへの外部キーとして使用することを好みます。idは、値の説明です。あなたのテーブルで

Mysqlのroleはint型格納する1、2、3、4 表rolesは以下のような方法で行を格納します値:ように(1, ADMINISTRATOR), (2, User)と。

Laravel

define('ADMINISTRATOR', 1); 
define('User', 2); 

table->role(ADMINISTRATOR); // search for ADMINISTRATOR 
+0

この場合、結果は、ID => ADMINISTRATOR説明=> "Administrador" ですか?私は管理者か従業員かをチェックする方法をどのように呼び出すのですか? –

+0

@FabioSantos私は自分の投稿を更新しました。 –

+0

カラムのロールは値を格納し、もう1つのカラムは**管理者のマネージャーを格納しますが、ポートグレードの説明を格納する必要があります –