gpt4 book ai didi

c# - 如何从我的应用程序处理 SQL 键值表?

转载 作者:行者123 更新时间:2023-12-03 19:37:52 26 4
gpt4 key购买 nike

所以我的 SQL Server 中有一个简单的键值表 BillTypes。它看起来像这样:

+----+-------------+
| Id | Description |
+----+-------------+
| 1 | OK |
| 2 | Missing |
| 3 | Maximum |
| 4 | Minimum |
| 5 | Error |
+----+-------------+

该表包含不同类型的帐单状态。我有另一个带有外键 BillType 的表 Items,引用上表中的 Id。

+----------+------+--------+
| IdItem | Cash |BillType|
+----------+------+--------+
| * | * | * |
| * | * | * |
| * | * | * |
| ... |... | ... |
+----------+------+--------+

然后,在我的应用程序中,我通过存储过程从第二个表获取数据。在此 sp 中,我不确定是否应该按原样选择 BillType、tinyint,或者使用内连接来返回描述。问题是,我的应用程序有一些取决于 BillType 的逻辑,即根据 BillType,行将被不同地处理。我的逻辑应该取决于 ID 还是描述?

在代码中,我应该有这样的东西吗?

DataTable dt = ...//call stored procedure that selects the BillType id
foreach(Datarow r in dt)
{
if(r["BillType"] == 3) ... //use logic
}

还是这个?

DataTable dt = ...//call stored procedure that selects the BillType description
foreach(Datarow r in dt)
{
if(r["BillType"] == "Maximum") ... //use logic
}

我目前使用第二种方式,带有描述,因为我认为它使代码更具可读性。然而,我担心有人可能会更改描述并破坏我的应用程序逻辑。另一方面,使用 ids 的可读性会较差(尽管我可以使用枚举来解决这个问题)并且不会受到描述更改的影响,但如果有人更改了 id,事情就会崩溃。

说实话,我们不希望任何人弄乱第一个表,因为我们专门为此应用程序制作了它。尽管如此,我还是 SQL 新手,我正在尝试学习应用程序与 SQL 交互的最佳实践,所以我想知道有经验的人是如何做到的

最佳答案

请将此视为评论而不是答案(我还没有足够的代表来发表评论)。

我更喜欢后者(正如您所做的那样),我依赖于描述。

如果您的 ID 是 SQL 缩进字段(自动递增),请考虑以下场景:

  1. 您在 DEV 环境中构建应用和数据库
  2. 生产部署返回并重新运行
  3. 现在,ID 不再是 1、2、3,而是 4、5、6

关于c# - 如何从我的应用程序处理 SQL 键值表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31342503/

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