我今天的问题是我应该如何组织MySQL Table来为不同的用户获得100%定制的菜单...

让我解释一下:我将有一个很大的菜单树(如窗口),它将为用户显示类别和项目。我希望用户能够删除,添加或修改类似内容:类别名称,删除类别,添加项目,更改项目名称和删除项目。
但是:我想为不同的客户在注册时为他们提供带有常见项和类别的“基本”菜单,但是当用户修改类别(例如,更改名称或删除类别)时,我不希望他的更改干扰与其他用户的菜单。

因此,我应该如何组织数据库来处理此问题:目前,我有2个表:T_categories(带有父信息以构造树菜单)和T_items(带有category_id),但是我意识到我并不知道如何我将处理我的查询以启用“删除或重命名”类别和项目...我应该像这样制作无限的表吗?


  T_user1_categories和T_user1_items
  
  T_user2_categories和T_user2_items


依此类推,但是如果我有1000个用户,那将不会很酷= /

目前,我只能(我认为)使用以下代码创建自定义项:privateview_id(用户ID)

另外,如果我构建了一些东西,当我重命名一个类别时,它会创建一个带有privateview_ID的新类别,所有已经在其中的项目都会丢失其位置

我正在使用PHP和MySQL

如果您有想法,我会很高兴听到!
谢谢!

拉斐尔

最佳答案

菜单栏是分层的东西。我建议您使用XML之类的分层元数据来“构建”这些东西。
您可以将用户,类别和项目存储在相应的表中,还可以创建菜单表来存储用户创建的菜单。
您仍然无法在用户,菜单,类别和创建关系表的项目之间建立关系。
用户也可以将一个项目从另一个类别中移出,而不必更改usersXcategories或usersXitems关系,而只需更改XML。

除了您的要求外,我不知道更多细节。

08-04 17:29