【问题标题】:MySQL Organisation Strategy for Multi-user with 100% customization100% 定制的多用户 MySQL 组织策略
【发布时间】:2014-02-17 10:33:36
【问题描述】:

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

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

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

T_user1_categories & T_user1_items

T_user2_categories & T_user2_items

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

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

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

我正在使用 PHP 和 MySQL

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

拉斐尔

【问题讨论】:

    标签: php mysql sql architecture


    【解决方案1】:

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

    如果不知道更多细节但您的要求,我不能说更多。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多