微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在SQL Server数据库中使用单行配置表馊主意?

如何解决在SQL Server数据库中使用单行配置表馊主意?

过去,我已经完成了这两种方式-单行表和键/值对表-每种方法都有其积极性和消极性。

单排

  • 正值:值以正确的类型存储
  • 正面:由于上述原因,使用代码更容易处理
  • 正值:可以分别为每个设置提供认值
  • 否定的:需要更改架构才能添加新设置
  • 否定的:如果有很多设置,表格可能会变得很宽

键/值对

  • 肯定:添加新设置不需要更改架构
  • 正:表架构狭窄,多余的行用于新设置
  • 负数:每个设置都具有相同的认值(是否为空/空?)
  • 负数:所有内容都必须存储为字符串(即nvarchar)
  • 否定的:处理代码中的设置时,您必须知道设置是什么类型并将其强制转换

到目前为止,单行选项是最容易使用的选项。这是因为您可以将每个设置以其正确的类型存储在数据库中,而不必在代码中存储设置的类型及其查找键。

我担心使用这种方法的一件事是在“特殊”单行设置表中有多行。我克服了这一点(在sql Server中):

  • 添加一个认值为0的新位列
  • 创建检查约束以确保此列的值为0
  • 在位列上创建唯一约束

这意味着表中只能存在一行,因为bit列的值必须为0,但是由于唯一约束,只能有一行具有该值。

解决方法

在开发购物车应用程序时,我发现我需要根据管理员的偏好和要求保存设置和配置。该信息可以是公司信息,运输帐户ID,PayPal
API密钥,通知首选项等任何信息。

创建表以在关系数据库系统中存储单行似乎非常不合适。

存储此信息的适当方法是什么?

注意:我的DBMS是SQL Server 2008,并且编程层是使用ASP.NET(在C#中)实现的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。