我将有两组数据将在我的表中插入相同的字段,它们根据插入的数据类型具有不同的含义
例如 我已插入
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用于贷款日期
所以结果表就像
ID DATE Status
Albert 2013/1/1 0
albert 2013/1/1 1
问题是。两者中哪些更好/最好的做法?
非常感谢任何建议。 谢谢你。
答案 0 :(得分:1)
我会使用两个不同的表。一个用于贷款,一个用于帐户。原因是您不希望将对象存储在行为不同的同一个表中。如果你每次做一个选择时必须做一个过滤器,只是为了得到贷款日期的50%的行,你很难分清它们并且在你的表中引入了很多。 SQL Sever大多数时候都会默认为慢速表扫描。由于这两个帐户在逻辑上是不同的,我认为将它们分开将使得更简洁的设计和更简单的SQL语句。
此外,除非您需要额外的字符,否则请勿使用N varchar。否则只是浪费空间。