我的默认方法是将这些偏好设置作为属性/值对存储在一个 *gulp* EAV 表中。
这个表不太可能变得非常庞大,所以我不太担心性能问题。我的其余模式是关系型的。但这确实会导致一些非常难看的查询:
$sql = "SELECT name, value FROM preferences"
. " WHERE name = 'picture_sizes'"
. " OR name = 'num_picture_fields'"
. " OR name = 'server_path_to_http'"
. " OR name = 'picture_directory'";
$query = mysql_query($sql);
if(!$query) {
echo "Oops! ".mysql_error();
}
while($results = mysql_fetch_assoc($query)) {
$pref[$results['name']] = $results['value'];
}
有没有人能提出更好的方法?
setting_weight
只是用于在管理页面中显示设置的指南。我可以获取数据并使用ORDER BY setting_weight
,管理员可以按照所需顺序查看设置。 - Donny Kurniasetting_key
是主键,因此您可以使用此键作为条件执行UPDATE
查询。在表单中,您可以将此列值用作字段名称。 因此,如果表单发送了$_POST['website_name'] = 'My new website'
,那么我可以使用它来更新数据库中的设置。 - Donny Kurnia