存储用户可编辑配置选项的最佳方法是什么?

时间:2013-03-30 22:42:11

标签: php database-design

这是我一直想知道的事情,现在我即将开始另一个需要这个的项目,我不禁想知道我是否正在以“正确的方式”这样做。

基本上,在我的API中,在这种情况下,企业电话系统 - 我们的客户端将能够切换多个选项,如“转发到交互式菜单”或修改呼叫者听到的口头问候语。

通常我通过在MySQL数据库中创建一个表来处理这样的事情,该数据库只有一行在每次用户对某些内容进行更改时都会更新。

我情不自禁地觉得这太过分了。我这样做是正确的吗?

1 个答案:

答案 0 :(得分:4)

如果它是全局设置,即不是用户特定的,我建议使用两个表。一个是可用设置列表,其定义带有SettingID,另一个表只有两个字段:foreign key SettingID以及设置的设置。

如果设置是每个用户可以自行设置的,只需将UserID添加到第二个表格。

使用这样的两个表,以便每个新设置都是新行,然后按照您的建议方式normalized。它允许您让PHP代码添加设置或修改设置,而无需修改MySQL数据库结构。

SettingsList
-----------
SettingID (Auto-increment)
SettingName
SettingDescription

UserSettings
------------
UserID (if using this field, make a compound primary key from SettingID and UserID)
SettingID (SettingsList foreign key, UserSettings primary key if not using UserID)
Setting