具有100%自定义功能的多用户MySQL组织策略

时间:2014-01-26 17:01:43

标签: php mysql sql architecture

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

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

那么,我应该如何组织我的数据库来处理这个问题:此时,我有2个表: T_categories (使用父信息来构建树状菜单)& T_items (使用category_id)但我意识到我真的不知道如何处理我的查询以启用“删除或重命名”类别和项目...我应该制作这样的无限制表格??

  

T_user1_categories& T_user1_items

     

T_user2_categories& T_user2_items

等等,但如果我有1000个用户,那就不会很酷= /

此时我只能(我认为)使用ex:privateview_id(用户ID)创建自定义项目

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

我正在使用PHP和MySQL

如果你有一个想法,我会很高兴听到它! 感谢您!

圣拉斐尔

2 个答案:

答案 0 :(得分:0)

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

如果不了解更多详细信息,除了您的要求,我不能说更多。

答案 1 :(得分:0)

好吧,最后我得出的结论是,最好的方法是为每个用户创建一个表...我已经读过,有些人拥有超过1000多个表的MySql数据库,没有任何问题,而另一个方式会很麻烦。此外,我不打算拥有1000多个用户,因为该自定义菜单是“付费”选项的一部分。谢谢你的回答jean