我正在使用java + javafx + mysql,我需要为我的应用程序开发一个菜单栏。 当应用程序启动时,我必须根据用户角色构建菜单。
我正在使用一个表来存储菜单层次结构。
| MENU_TABLE |
| ---------- |
| ID_MENU |
| PARENT_ID |
| TITLE |
另一个表存储对de fxml文件的引用,当用户选择相关的菜单项时,我需要加载该文件。
| MENU_FORM_TABLE |
| --------------- |
| ID_MENU |
| FXML PATH |
我不喜欢这种方法,很难维护,当我需要添加一个新菜单来修改现有菜单时,我必须非常小心。
还有其他想法吗?建议?
提前感谢!
答案 0 :(得分:0)
如果没有更多关于难以维护的意思的信息,这看起来就像一个不太难维护的简单设计。
在“MENU_TABLE”上插入/更新/删除时,您应该在“MENU_FORM_TABLE”上执行相同操作。 (在删除中,您可以使用“ID_MENU”字段上的级联选项在表“MENU_FORM_TABLE”中定义一个forign键,以便在删除“MENU_TABLE”中的一行时,“MENU_FORM_TABLE”中的相应行也会自动删除由db)。
但是,看起来,这里的关系是一对一的。因此,您可以将字段“FXML PATH”移动到第一个表并完全删除第二个表。这将允许您仅在一个表上工作。
答案 1 :(得分:0)
我认为你需要一些能够让你更容易“可视化”菜单层次结构的东西。 一种方法是在JSON中定义层次结构/嵌套结构。然后,您可以编写生成器程序(可能在JavaScript中)来生成SQL语句以填充表。