我即将创建一个使用php和mysql的自定义CMS。每个页面都有几个区域。每个区域都可以输出模块。例如,我们有一个新闻模块,我们已经在模块管理部分添加了新闻类别和单个新闻项目。 但是在这里开始:最终用户希望得到这个模块的不同输出。例如,用户想要显示“体育”类别的新闻,或者用户想要显示前5个最新消息,或者用户想要通过某种东西来排序新闻,或者,或者......或者......模块可以采取的许多其他选项。
我的问题是您处理和管理这些选项的解决方案是什么。 - 你为news_options这样的每个模块建议一个module_option表吗? - 你建议一个包含每个模块选项的表吗?
希望我能得到我的意思;)也让我知道db map是否必要。
答案 0 :(得分:1)
第一种方法可能是为每个模块使用不同的表。然后,您可以在字段中保留不同实例的设置。以易于管理的形式。
示例:
Table: News ---------------------------------------------------------------------- | id + news_title + option 1 + option 2 | ----------------------------------------------------------------------
接下来的方法,我可以使用全局配置表,它在另一个字段中保存键名和一个字段和键值。这样您就不必从不同的模块创建不同的表。
示例:
表:ModuleOption
--------+-----------------+-------------------+---------------------+ | id | module_id | setting_name | settings_value | --------+-----------------+-------------------+---------------------+ | 1 | 1 | option 1 | option value 1 | --------+-----------------+-------------------+---------------------+ | 2 | 1 | option 2 | option value 2 | --------+-----------------+-------------------+---------------------+
关于选择哪一个的问题取决于您对项目进行编码的方式。两者都有自己的优点和缺点。但是,有些要考虑的要点