我试图找出在我的数据库上存储选项列并确保它不超过其范围的最佳方法。
我的数据库是将连接到我的 C# 应用程序的 SQL Server,该应用程序存储用户工资单工作班次并输出该周/月/2 周期间总收入的工资单摘要。我有 2 列我不确定如何存储:
第一个是选择每周/双周/每月工资单的选项,第二个是允许用户选择某个班次并存储如果它是正常/时间和一半/双倍他们存储的每小时费率。
我正在考虑创建应用程序端 C# 验证,以阻止用户输入不正确的数据。这是最简单的方法还是这些情况有最佳实践?
我试图找出在我的数据库上存储选项列并确保它不超过其范围的最佳方法。
我的数据库是将连接到我的 C# 应用程序的 SQL Server,该应用程序存储用户工资单工作班次并输出该周/月/2 周期间总收入的工资单摘要。我有 2 列我不确定如何存储:
第一个是选择每周/双周/每月工资单的选项,第二个是允许用户选择某个班次并存储如果它是正常/时间和一半/双倍他们存储的每小时费率。
我正在考虑创建应用程序端 C# 验证,以阻止用户输入不正确的数据。这是最简单的方法还是这些情况有最佳实践?
您可以使用数据库检查约束,也可以将有效数据存储在另一个表中,该表与您的主表有关系,由约束强制执行。您可以使用 TSQL 或通过 SSMS 中的“数据库图”工具设置关系。
查找表可以从您的应用程序中维护,并且在数据发生变化时工作得最好。当您预先知道每个可能的值时,检查约束是合适的。
这是一个例子......
USE AdventureWorks ;
GO
CREATE TABLE Person.ContactBackup
(ContactID int) ;
GO
ALTER TABLE Person.ContactBackup
ADD CONSTRAINT FK_ContactBacup_Contact FOREIGN KEY (ContactID)
REFERENCES Person.Contact (ContactID) ;
ALTER TABLE Person.ContactBackup
DROP CONSTRAINT FK_ContactBacup_Contact ;
GO
DROP TABLE Person.ContactBackup ;
这是一个类似的问题。