这是我一直在思考的事情,现在我即将开始另一个需要这个的项目,我不禁想知道我是否在做“正确的方式”。
基本上,在我的api中,在这个例子中,一个企业电话系统-我们的客户机将能够切换几个选项,如“将呼叫转接到交互菜单”或修改呼叫者听到的语音问候语。
通常,我通过在mysql数据库中创建一个表来处理类似的事情,该表只有一行,每次用户对某些内容进行更改时都会更新。
我禁不住觉得这太过火了。我这样做对吗?

最佳答案

如果是全局设置,也就是说,不是用户特定的,我建议使用两个表。一个是可用设置的列表,其中的定义带有SettingID,另一个表只是两个字段:foreign keySettingID和设置的值。
如果设置是每个用户可以自行设置的,只需将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

08-08 01:09