0

我将有两组数据插入到我的表中,具有相同的字段,根据插入的数据类型,它们具有不同的含义

例如我已经插入

                 Albert 2013/1/1 (LoanMonth)
                 Albert 2013/1/1 (AccountinMonth)

他们都有相同的领域,他们的待遇会有所不同

我的第一种方法是我的数据库中有两个日期

即:

ID nvarchar(20)
LoanDate smalldatetime
AccountingDate smalldatetime

如果我在结果表上方插入数据将是

    ID  LOANDATE    AccountingDate
Albert  2013/1/1    null
albert  null        2013/1/1

我的第二种方法是拥有状态 ID

即:

ID nvarchar(20)
Date smalldatetime
StatusID bit

**1 用于会计 0 用于 LoanDate

所以结果表就像

 ID      DATE      Status
Albert  2013/1/1     0
albert  2013/1/1     1 

问题是。两者之间更好/最佳实践是什么?

任何建议将不胜感激。谢谢你。

4

1 回答 1

1

我会使用两个不同的表。一份用于贷款,一份用于账户。原因是您不想将行为不同的对象存储在同一个表中。很难将它们区分开来,并且如果您每次进行选择时都必须进行过滤以降低 50% 的行是贷款日期,那么您会在表中引入很多无意中听到的内容。大多数情况下,SQL Sever 将默认为慢速表扫描。由于这两个帐户在逻辑上是不同的,我认为将它们分开将使设计更简洁,SQL 语句更简单。

此外,除非您需要额外的字符,否则不要使用 N varchar。否则只是浪费空间。

于 2013-09-25T04:06:12.413 回答