1

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

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

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

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

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

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

还有其他想法吗?建议?

提前致谢!

4

2 回答 2

1

如果没有更多关于难以维护的意思的信息,这看起来像一个简单的设计,维护起来并不难。

当您在“MENU_TABLE”上插入/更新/删除时,您应该在“MENU_FORM_TABLE”上执行相同的操作。(在删除时,您可以在“ID_MENU”字段上使用级联选项在表“MENU_FORM_TABLE”中定义一个外键,这样当“MENU_TABLE”中的一行被删除时,“MENU_FORM_TABLE”中的相应行也会自动删除由分贝)。

尽管如此,看起来,这里的关系是一对一的。因此,您可以将字段“FXML PATH”移动到第一个表并完全删除第二个表。这将允许您只在一张桌子上工作。

于 2012-12-05T14:13:20.007 回答
0

我认为您需要一些可以让您更轻松地“可视化”菜单层次结构的东西。一种方法是在 JSON 中定义层次结构/嵌套结构。然后,您可以编写一个生成器程序(可能在 JavaScript 中)来生成 SQL 语句来填充您的表。

于 2012-12-05T19:13:43.820 回答