当前位置: 首页 > 面试题库 >

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

爱刚捷
2023-03-14
问题内容

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

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

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

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


问题答案:

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

单排

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

键/值对

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

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

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

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

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



 类似资料:
  • 如何正确配置Wildfly8.x JTA数据源,以便在EclipseLink和Microsoft的SQLServer数据库中使用JPA?

  • 多数据库、主从库配置 本章会讲解一下关于sp框架的主从库链接配置和多数据库链接的方法。 一、主从库配置 新版sp框架,默认支持主从库配置,直接在protected/config.php文件内进行配置即可读写分离。 配置方法: 'mysql' => array( 'MYSQL_HOST' => 'localhost', 'MYSQL_PORT' => '3306', 'MYS

  • 本文向大家介绍Ubuntu配置Mysql主从数据库,包括了Ubuntu配置Mysql主从数据库的使用技巧和注意事项,需要的朋友参考一下 本次环境:虚拟机下 服务器:Ubuntu 14.04 LTS 数据库: 5.5.37 端口:3306 主IP:192.168.63.133 从IP:192.168.63.134 授权账号: user:suxh password:111111 好了交代完环境:我们直

  • 我有一个文件名、FilePath和FileSize的列表,我想使用spark SQL将这些细节插入到我的配置单元表中。 是否有任何方法可以再次将此查询拆分为3个不同的insert hive语句。

  • 这节课我们主要是学习 MongoDB 数据库的基本操作和使用,爬虫在爬取到数据之后可以把数据需要把数据保留下来供其他工作人员去使用。如果数据量不是很大的话可以保存在文件中,但是如果数据量很大那么保存在文件中就非常困难,先不说存储完数据之后的文件大小非常大,很占空间,单就是往文件中写入数据的速度就很慢。 但是幸好我们还有另外一个选择,那就是将爬取到的数据存入数据库中。因为现在 JSON 数据格式的流

  • 全部的 只是想看看用表单中提交的数据更新数据库行的最佳选项是什么。我理解Laravel更新查询生成器,但是我在如何获取表单数据,然后执行该查询方面遇到了困难。相对较新的Laravel:)这是我想出的,只是从我的PHP经验和逻辑: 我曾试图将查询放入一个函数中,然后让表单操作成为函数: 正如我所说,主要问题是试图让命名的表单对象成为更新行的对象。我有两个文本输入字段,分别命名为“body”和“not