当我需要一张表来为我的应用设置设置时。我总是使用包含许多字段的表格:
create table options (
id ...
url ...
keys ..
path ...
)
当然我需要一个ID(因为我有一个设置)
我可以使用其他方法:
create table options (
id ...
field ..
)
以field
为例:
`key => value`
所以我不需要设置很多字段..
BS:
这些字段有不同的类型:int
text
datetime
..等等
答案 0 :(得分:1)
当然,你可以做到。只需确保在从数据库中取出值时转换为正确的类型,并且类似地,在插入或更新它们时。
PHP示例:
// saving a settings value
$max_length = 20;
mysql_query("UPDATE settings SET value = '{$max_length}' WHERE field = 'max_length'");
// obtaining a settings value
$result = mysql_query("SELECT value FROM settings WHERE field = 'max_length'");
$settings = mysql_fetch_assoc($result);
$max_length = (int) $settings['value'];
对于上面的示例,您的架构需要field
(varchar
)和value
(varchar
)。
答案 1 :(得分:0)
这是一种更好的方法,否则如果您想添加其他设置,则需要更改模型(数据库:添加列),而不是仅向现有表添加行。
使用:
可能还有其他一些字段,比如type,required,......
作为类型使用Varchar,如果将一个Setting(一个DB-row)映射到一个(Java,...)Object,则提供getValue(),getValueAsDate(),getValueAsBoolean(),...等方法。 >
答案 2 :(得分:0)
您可以使用以下内容:
create table options (
OptionID string,
OptionType string,
OptionValue string,
)
然后你需要一个将值转换为所需类型的函数。
答案 3 :(得分:0)
所以我不需要设置很多字段..
您可以发出不设置每个字段的UPDATE语句。
update options set someval = 1 where id = 2;
这使得所有其他价值都与他们一样......