ฉันกำลังสร้างระบบเมนูใน PHP และ MySQL ฉันจะมีหลายเมนูที่แตกต่างกันและแต่ละเมนูจะมีชุดของรายการเมนูที่เชื่อมต่ออยู่
บนไซต์ฉันมีสิทธิ์ผู้ใช้ต่างกันผู้ใช้บางคนสามารถดูรายการเมนูทั้งหมดและบางรายการถูกซ่อนจากผู้ใช้บางคน ฉันอยากรู้ว่าฉันจะจัดการสิทธิ์ได้อย่างไรในวิธีที่สะอาดซึ่งจะช่วยให้ผู้ใช้ประเภทอื่น ๆ ในอนาคตสามารถเพิ่มได้อย่างง่ายดาย
สิ่งที่ฉันมีจนถึงตอนนี้คืออะไร:
-------------------
|Menus
-------------------
|id| |display name|
-------------------
----------------------------------------------------------
|Menu items
----------------------------------------------------------
|id| |menu_id| |label| |link| |parent| |sort| |permission|
----------------------------------------------------------
ฉันคิดว่าpermission
คอลัมน์อาจเป็นสตริงที่คั่นด้วยเครื่องหมายจุลภาคที่ฉันสามารถจับคู่กับรหัสการอนุญาตของผู้ใช้ปัจจุบัน มันอาจเป็นการอ้างอิงไปยังตารางอื่นที่กำหนดชุดค่าผสมที่เป็นไปได้ทั้งหมดของสิทธิ์ที่มีอยู่ในปัจจุบัน
วิธีแก้ปัญหาหนึ่งก็คือการจัดเก็บรายการเมนูหลายรายการโดยที่ความแตกต่างเพียงอย่างเดียวคือการอนุญาตแม้ว่าสิ่งนี้จะนำไปสู่การจัดเก็บซ้ำซ้อนและอาจเป็นปัญหาในการจัดการ
ฉันชอบที่จะได้ยินความคิดบางอย่างเกี่ยวกับวิธีการจัดโครงสร้างนี้และสิ่งที่อาจถือว่าสะอาดแบบไดนามิกและเส็งเคร็ง
ขอบคุณ