0

在我深入设计数据库之前,我想弄清楚如何最好地处理这种情况。

我目前有一张表,旨在成为各种银行分类帐。该表有一个存款字段和一个取款字段(以及一堆其他信息)。一行中的所有信息都与存款和取款有关,但是只会填写一个或另一个(存款/取款)(另一个字段将始终为空)。

我应该创建两个表(取款表和存款表)还是只保留默认为 null 并且只在插入时填写单个值?也就是说,有这样的空字段是性能问题吗?而且,如果我要扩展它以包含更多的空字段(比如数据库中的 15 个字段。其中 8 个默认为空)怎么办?

4

1 回答 1

0

正如@HABO 建议的那样,我将使用一列作为金额。要确定是取款还是存款,请创建第二列,除非金额的符号足以确定这一点。当您想从表中提取信息时,您可以使用视图或计算列。

如果您将心放在两个单独的列上,那么为了确保只设置一个列,您可以在表上添加一个触发器,以强制执行该规则并在违反规则时进行回滚。这使您的中间层代码有责任正确输入数据,当然,当触发器执行回滚并引发 raiserror 时,会做出适当的反应。

于 2013-09-29T21:43:58.980 回答