从应用程序添加新列到表时,数据库设计问题(database design issue when ad

2019-09-16 22:05发布

我目前一个项目工作。 现在出现的问题是,我在数据库表来处理动态列。

我有一个表Charges ,其中对应于每个不同的收费金额Client将被保存。 假设该表具有以下columns-

Client_Id     Charge_1     Charge_2     Charge_3     Charge_4

现在,管理员可以将更多new Charges为客户。 在这种情况下,新的收费将被添加到该Charges表的column 。 这需要在应用程序运行时没有在数据库设计的时候处理。 这是我的想法。

但是,它看起来并不适合我。

有没有更好的办法来处理这个问题? 请给我建议。

提前致谢。 我是新与此数据库的设计。

Answer 1:

做一个综合表,即ClientCharges

你可以保留你原来的收费表和您的客户端表,并在客户端收费表有以下栏目:

ClientChargeId,客户端Id,ChargeId

在您的费用表中,可以不断增加(因为许多费用是您需要),然后引用在ClientCharges表ChargeId。

CREATE TABLE ClientCharges
(
    ClientChargeId          INT IDENTITY(1,1)
    , ClientId              INT 
    , ChargeId              INT
)


INSERT INTO ClientCharges
(ClientId, ChargeId)
VALUES
(1, 1),
(1,2),
(1,3),
(1,4),
(2,1),
(3,1),
(3,2),
(4,3),
(4,4)
  • 客户机1具有收费1,2,3和4
  • 客户端2具有1充电
  • 客户机3具有电荷1,2
  • 客户端4有收费3和4

然后在客户端Id和ChargeId字段添加外键约束。



Answer 2:

这听起来像你真正想要的是一个1对多表的关系。

你要做的就是创建一个表有两列,CLIENT_ID和充电,然后添加一个新行每次充电。

你打算如何使用这这我不清楚。 难道这些“罪名”个人交易? 或者,他们负责与客户相关的类型? 在任何情况下,它的坏的形式来修改你的数据模型是这样的。

当你有这些类型的重复字段,只是让他们自己的表。



文章来源: database design issue when adding new columns to table from application