gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 04:25:19 27 4
gpt4 key购买 nike

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

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

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

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

最佳答案

我过去曾通过两种方式完成此操作 - 单行表和键/值对表 - 每种方法都有优点和缺点。

单行

  • 积极:值以正确的类型存储
  • 积极:在代码中更容易处理(由于上述原因)
  • 积极:可以为每个设置单独指定默认值
  • 否定:需要更改架构才能添加新设置
  • 负面:如果有很多设置,表格可能会变得很宽

键/值对

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

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

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

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

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

关于sql - 在 SQL Server 数据库中使用单行配置表。馊主意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2300356/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com