5 sql sql-server database-design sql-server-2008
我目前正在处理一个项目.现在出现的问题是,我必须处理数据库表中的动态列.
我有一张桌子Charges,其中Client将存储与每个对应的不同费用的数量.假设该表有以下栏目 -
Client_Id Charge_1 Charge_2 Charge_3 Charge_4
Run Code Online (Sandbox Code Playgroud)
现在,管理员可以new Charges为客户申请更多.在这种情况下,新费用将添加到Charges表格中column.这需要在应用程序运行时处理,而不是在数据库设计时.这是我的想法.
但是,它看起来不适合我.
有没有更好的办法来处理这个问题?请建议我.
提前致谢.我是这个数据库设计的新手.
制作一个复合表,即ClientCharges
您可以保留原始费用表和客户表,并在客户费用表中保留以下列:
ClientChargeId,ClientId,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)
Run Code Online (Sandbox Code Playgroud)
然后在ClientId和ChargeId字段上添加外键约束.
听起来你真正想要的是1对多的表关系.
你要做的是创建一个包含两列Client_id和charge的表,然后为每次充电添加一个新行.
我不清楚你打算如何使用它.这些"收费"是个别交易吗?或者他们收取与客户相关的收费类型?无论如何,修改这样的数据模型是不好的形式.
当你有这些类型的重复字段时,只需将它们作为自己的表.
| 归档时间: |
|
| 查看次数: |
214 次 |
| 最近记录: |