我已经思考了一段时间的问题,现在我即将开始另一个需要此功能的项目,我不禁想知道我是否正在使用“正确的方法”。
基本上,在我的API中(例如企业电话系统),我们的客户可以切换多个选项,例如“转发呼叫到交互式菜单”或修改来电者听到的语音问候。
通常情况下,我通过在MySQL数据库中创建仅有一行数据的表格来处理此类问题,并且每次用户更改某些内容时都会更新该行数据。
但我觉得这样做有点过头了。我是否正在使用正确的方法?
我已经思考了一段时间的问题,现在我即将开始另一个需要此功能的项目,我不禁想知道我是否正在使用“正确的方法”。
基本上,在我的API中(例如企业电话系统),我们的客户可以切换多个选项,例如“转发呼叫到交互式菜单”或修改来电者听到的语音问候。
通常情况下,我通过在MySQL数据库中创建仅有一行数据的表格来处理此类问题,并且每次用户更改某些内容时都会更新该行数据。
但我觉得这样做有点过头了。我是否正在使用正确的方法?
如果这是一个全局设置,即不针对特定用户,我建议使用两个表。第一个表列出可用设置及其定义,包括SettingID
,另一个表只有两个字段:外键SettingID
和设置的值。
如果这些设置是每个用户可以自己设置的,请在第二个表中添加UserID
。
像这样使用两个表,使每个新设置成为一个新行,比您建议的方式更加标准化。它允许您的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
varchar
。在varchar
中,你不能对数字进行排序或加法等操作,但对于一个Settings
表,你可能只需要检查它是否为1或0。请参考此链接了解更多关于在varchar
字段中存储整数的信息:https://dev59.com/dHA75IYBdhLWcg3w9-Ox - Luke Shaheen