Razor Webmatrix-条件数据库更改?

Razor Webmatrix-条件数据库更改?,razor,webmatrix,Razor,Webmatrix,所以我有一个问题,我的网站上的属性要么是活动的,要么是非活动的。默认情况下,属性被视为非活动的,我希望它仅在满足某些条件后才变为活动的。例如,我只希望它在提供描述、至少应用了一个费率以及仅在分配了有效邮政编码时才处于活动状态 我将如何实现这一点,因为用户可能不会在第一次注册时填充所有这些信息,并且可能希望在以后的某个日期完成更新,然后再将其激活 我能想到的唯一方法是,每次我更新一个属性的信息时,运行一个“if”语句,我可以使用它,但我想知道是否有其他条件实现这一点,数据库定期检查是否应该将某些内

所以我有一个问题,我的网站上的属性要么是活动的,要么是非活动的。默认情况下,属性被视为非活动的,我希望它仅在满足某些条件后才变为活动的。例如,我只希望它在提供描述、至少应用了一个费率以及仅在分配了有效邮政编码时才处于活动状态

我将如何实现这一点,因为用户可能不会在第一次注册时填充所有这些信息,并且可能希望在以后的某个日期完成更新,然后再将其激活

我能想到的唯一方法是,每次我更新一个属性的信息时,运行一个“if”语句,我可以使用它,但我想知道是否有其他条件实现这一点,数据库定期检查是否应该将某些内容设置为活动


谢谢,Gavin

如果您运行的是完整版本的SQL Server,您可以使用触发器和类似VoidKing建议的bitflag列来完成此操作。在保存时,触发器将触发,您将编写一个复杂的sql语句,测试是否已填充所有需要的字段,并根据需要将bitflag设置为true或false

我使用了两个保存按钮,以更简单的方式完成了类似的操作。一个不会触发任何验证的“保存”按钮和一个将验证应用于所有所需字段的“保存并释放”按钮。两个按钮都保存了数据,但“保存”和“释放”按钮仅在验证通过时保存,并将位字段“isActive”保存到1,而另一个保存方法将其保存为0


这可能是一个好方法,否则您只需在单个保存按钮上保留检查逻辑,这也是一个不错的方法

如果您运行的是完整版本的SQL Server,则可以使用触发器和类似VoidKing的bitflag列来完成此操作。在保存时,触发器将触发,您将编写一个复杂的sql语句,测试是否已填充所有需要的字段,并根据需要将bitflag设置为true或false

我使用了两个保存按钮,以更简单的方式完成了类似的操作。一个不会触发任何验证的“保存”按钮和一个将验证应用于所有所需字段的“保存并释放”按钮。两个按钮都保存了数据,但“保存”和“释放”按钮仅在验证通过时保存,并将位字段“isActive”保存到1,而另一个保存方法将其保存为0


这可能是一个好方法,否则您只需在单个保存按钮上保留检查逻辑,这也是一个不错的方法

我会在更新与财产相关的数据时这样做。同意Mike的说法。您必须在每次更新数据时设置数据,或者在每次读取数据时将其用作标准。通过在编辑代码中添加逻辑,它更有可能集中您的代码并遵循枯燥的原则。如果这样做更简单,您的数据库条目还可以有一个
isActive
“bit”属性,您可以在更新数据时将其调整为true或false(如果Mike刚才没有提到的话)。这样,在读取数据库时,您只需检查该值。我会在更新与属性相关的数据时进行检查。同意Mike的说法。您必须在每次更新数据时设置数据,或者在每次读取数据时将其用作标准。通过在编辑代码中添加逻辑,它更有可能集中您的代码并遵循枯燥的原则。如果这样做更简单,您的数据库条目还可以有一个
isActive
“bit”属性,您可以在更新数据时将其调整为true或false(如果Mike刚才没有提到的话)。这样,在读取数据库时,您只需检查该值。使用计算字段是另一种解决方案吗?它可能会稍微慢一点,因此如果速度是最重要的,可能会成为一个问题,但这意味着您的同步工作没有两组数据-您的位字段将仅作为基础数据的表示形式存在。使用计算字段是另一种解决方案吗?它可能会稍微慢一点,因此如果速度是最重要的,可能会引起关注,但这意味着您的同步工作中没有两组数据-您的位字段将仅作为基础数据的表示形式存在。