菜单结构设计

时间:2012-12-05 13:07:13

标签: java mysql menu javafx-2

我正在使用java + javafx + mysql,我需要为我的应用程序开发一个菜单栏。 当应用程序启动时,我必须根据用户角色构建菜单。

我正在使用一个表来存储菜单层次结构。

| MENU_TABLE |
| ---------- |
| ID_MENU    |
| PARENT_ID  |
| TITLE      |

另一个表存储对de fxml文件的引用,当用户选择相关的菜单项时,我需要加载该文件。

| MENU_FORM_TABLE |
| --------------- |
| ID_MENU         |
| FXML PATH       |

我不喜欢这种方法,很难维护,当我需要添加一个新菜单来修改现有菜单时,我必须非常小心。

还有其他想法吗?建议?

提前感谢!

2 个答案:

答案 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语句以填充表。