Secara umum, ENUM
jenis tidak dimaksudkan untuk digunakan dalam situasi ini. Hal ini terutama terjadi jika Anda bermaksud untuk memenuhi fleksibilitas penambahan atau penghapusan peran di masa mendatang. Satu-satunya cara untuk mengubah nilai ENUM
dengan ALTER TABLE
, sementara mendefinisikan peran di tabel mereka sendiri hanya akan membutuhkan baris baru di roles
tabel.
Selain itu, menggunakan roles
tabel memungkinkan Anda menambahkan kolom tambahan untuk mendefinisikan peran dengan lebih baik, seperti description
bidang yang Anda sarankan di Opsi 1. Ini tidak mungkin jika Anda menggunakan ENUM
ketik seperti pada Opsi 2.
Secara pribadi saya tidak akan memilih ENUM
dalam skenario ini. Mungkin saya dapat melihatnya digunakan untuk kolom dengan kumpulan nilai yang benar-benar terbatas, seperti {Spades, Hearts, Diamonds, Clubs}
untuk menentukan jenis kartu, tetapi tidak dalam kasus seperti yang dimaksud, untuk kerugian yang disebutkan sebelumnya.