如何为具有配置设置的对象建模

时间:2014-12-15 17:50:26

标签: php mysql laravel

我正在使用Mysql数据库构建一个Laravel应用程序,用户可以在其中浏览可用工具列表。这些工具都位于网址/tools/{tool-slug}

此URL路由到我的ToolController中的方法,该方法使用slug在数据库中查找工具,并将相应的视图,js文件和有关该工具的信息返回给浏览器。

以下是我正在寻找建议的部分:

这些工具中的每一个都可以具有与之关联的一些配置设置,并且需要在该工具页面上查看这些设置以及每个设置的选项,以便用户可以根据需要调整设置。每种工具的可用设置都不同。

因此,例如,ToolA可能具有以下配置选项:

Page Position -> top, left, bottom
Header Color -> blue, yellow, green

ToolB可能具有以下设置:

Font Weight -> bold, regular
Page Position -> top, left, bottom, right
Header Text -> "Heading 1", "Heading 2", "Heading 3"

我正在尝试确定设置模型和表格来表示此信息的最佳方法。这是我到目前为止所提出的,但我很想知道是否有人有更好的想法:

ToolConfigOption
 - id
 - tool_id
 - name (this would be things like "Page Position", "Header Text", etc)

ToolConfigOptionValues
 - id
 - tool_config_option_id
 - value (this is the possible values for the option like "top", "bold", etc)

ToolConfig (this assigns the configuration to a specific user)
 - tool_id
 - user_id
 - tool_config_option_id
 - tool_config_option_value_id

现在,要列出该工具页面上给定工具的配置选项,我将查找给定工具的所有ToolConfigOptions和ToolConfigOptionValues。要获取给定用户的工具的当前设置,我将查找给定用户和给定工具的所有ToolConfig条目。

1 个答案:

答案 0 :(得分:0)

我会用这样的东西:

User - User Model
Tool - ToolModel
ToolConfig - represents the Tool Configuration options available for each tool
ToolConfigUser - Represents the relationship between Users and Tool Configurations