Saya membuat sistem menu di PHP dan MySQL. Saya akan memiliki beberapa menu berbeda dan setiap menu akan memiliki satu set item menu yang terhubung dengannya.
Di situs itu, saya juga memiliki izin pengguna yang berbeda, beberapa pengguna dapat melihat semua item menu dan beberapa item disembunyikan dari beberapa pengguna. Saya ingin tahu tentang bagaimana saya bisa menangani izin dengan cara bersih yang akan memungkinkan lebih banyak jenis pengguna di masa depan dengan mudah ditambahkan.
Apa yang saya miliki sejauh ini adalah sesuatu seperti ini:
-------------------
|Menus
-------------------
|id| |display name|
-------------------
----------------------------------------------------------
|Menu items
----------------------------------------------------------
|id| |menu_id| |label| |link| |parent| |sort| |permission|
----------------------------------------------------------
Saya berpikir bahwa permission
kolom dapat berupa string yang dipisahkan koma yang dapat saya cocokkan dengan id izin pengguna saat ini. Itu juga bisa menjadi referensi ke beberapa tabel lain yang mendefinisikan semua kemungkinan kombinasi dari izin yang ada saat ini.
Salah satu solusi juga bisa dengan hanya menyimpan beberapa item menu di mana satu-satunya perbedaan adalah izin meskipun ini akan menyebabkan penyimpanan duplikat dan mungkin menyulitkan untuk mengelola.
Saya ingin mendengar beberapa pemikiran tentang bagaimana menyusun ini dan apa yang bisa dianggap bersih, dinamis, dan jelek.
Terima kasih.