2014-02-16 47 views
1

我正在开发小应用程序。 它是像应用程序的小CMS。本网站的管理员应该可以选择更改应用程序中的设置。像标题中的文字,当天的消息。哪里可以保存Web应用程序的配置数据?

我应该在哪里存储这些值?数据库中的表?某种文件?我希望管理员能够从网站更改这些值,而无需在服务器上手动编辑文件。

回答

1

我认为用WebSiteSettings DB的小表将是最好的解决方案,对我来说。

EDITED

WebSiteSettings表例如:

PK Id    [int]    not null 
    StrTmplVal_1  [nvarchar(128)] null 
    StrTmplVal_2  [nvarchar(256)] null 
    StrTmplVal_3  [nvarchar(512)] null 
    BoolTmplVal_1 [bit]    null 
    BoolTmplVal_2 [bit]    null 
    BoolTmplVal_3 [bit]    null 
    IntTmplVal_1  [int]    null 
    IntTmplVal_2  [int]    null 
    IntTmplVal_3  [int]    null 

WebSiteSettings模型例如为个人网站:

SettingsId   -> Id    
    SiteName    -> StrTmplVal_1  
    PageHeader   -> StrTmplVal_2  
    WelcomeText   -> StrTmplVal_3  
    IsDemoVersion   -> BoolTmplVal_1  
    IsTilesShowed   -> BoolTmplVal_2  
    MaxRowCountOnPage  -> IntTmplVal_1  
    WelcomeAnimationDelay -> IntTmplVal_2 
+0

但它应该看起来如何?带有“键”“值”列的表格? 价值长度类型差异怎么样? 它是如何解决“大”的应用程序? – Hooch

+0

您可以使用字符串,int和bool类型创建具有多个列的表格,并将它们映射到不同网站的不同模型上。我现在的网站标题(和其他东西),你不需要大量的模板,他们不是很大(像往常一样字符串变量少于512个字符)。 – melvas

+0

这是“很多专栏”的好主意。我知道了。但是,如果你想要接受答案,你应该稍微编辑一下,并为将来可能来到的其他人举例。再次感谢您的想法。 – Hooch

1

我想按照这个结构的表是一个开始:

表设置 ID(int, primary key), Name(varchar)

表SettingValuesID(int, primary key), SettingID(int foreign key), Value(blob)

请注意,我用BLOB(二进制大对象)类型的设置的实际值。因此,您可以通过序列化来保存设置。

希望我帮了忙!

+0

不错,但我不明白为什么没有名称和值(blob)单表?我是SQL新手,我对学习这些小技巧感兴趣。 – Hooch

+0

因为对于某些设置你可能有很多值...如果你不需要“一对多”的关系,你可以把它放在一个表中...... –

相关问题