具有不同名称和不同用途的相同表结构 - SQL

时间:2015-08-18 18:00:01

标签: sql sql-server

为了更好地理解这个问题,让我们考虑2个简化表,允许和扣除:

CREATE TABLE Allowance
(
    [Id]        INT             NOT NULL IDENTITY PRIMARY KEY,
    [Label]     VARCHAR(100)    NOT NULL UNIQUE,
    [Amount]    DECIMAL(20,3)   NOT NULL
)

CREATE TABLE Deduction
(
    [Id]        INT             NOT NULL IDENTITY PRIMARY KEY,
    [Label]     VARCHAR(100)    NOT NULL UNIQUE,
    [Amount]    DECIMAL(20,3)   NOT NULL
)

我目前正在使用工资单软件,我相信这两个表是自我明确的,不需要进一步解释。正如您所看到的,两个表具有相同的结构,但具有不同的业务逻辑。一个增加基本工资,另一个减去。

这是我的问题。是否更好地按业务逻辑分离表,实际上,或者将它们组合在一个表中并添加一个新的列标志,表示行的性质:

  • 0 for allowance
  • 1扣除

这两个概念之间的比较将是最受欢迎的。

1 个答案:

答案 0 :(得分:2)

这是数据如何相关的问题 - 如果两个表中没有真正的关系,它们应该分开。但是,如果您需要同时处理数据,例如Allowances和Deductions的单个SUM,那么组合到一个表中可能更有意义。如果不了解更多的设计方案,就不可能提出好的建议。