Her roller için ayrı alanlar tutmak iyi bir fikir değildir. Eğer başka bir rol eklemek isterim eğer veritabanı yapısını güncellemek gerekir.
Siz IMO iki şey yapabilirsiniz:
SET field
Eğer yeni bir rol eklemek istiyorsanız kullanıcı sadece tek bir değer, bu hala değiştirme tablo gerektiren herhangi bir rolleri tanımlayabilirsiniz ama en azından başka bir alan eklemek olmayacak bir set
alanı oluşturmak için Tablo
M:M table
M oluşturun: M kullanıcıları ile rolleri bağlayacak bu tabloya (çok çok), başka bir role eklemek istiyorsanız bu çözüm db değiştirme gerektirmez
CREATE TABLE `users` (
id INT AUTO INCREMENT,
login VARCHAR(100) NOT NULL,
password CHAR(32) NOT NULL,
PRIMARY KEY (id)
)
CREATE TABLE `roles` (
id INT AUTO INCREMENT,
name VARCHAR(50) NOT NULL,
PRIMARY KEY (id)
)
CREATE TABLE `user_roles` (
user_id INT,
role_id INT
)
Ben de doğru kimlikleri bu tabloda olduğundan emin olacak kullanıcı rolleri masaya kısıtlama eklemek istiyorum ama sadece basit tutmak için bu örnekte ekleyebilirsiniz olmaz. Bulabilirsiniz bu konuda daha fazla bilgi here