【发布时间】:2013-06-10 11:39:31
【问题描述】:
我正在使用 Java EE、Oracle db 和 JPA:
我需要在 oracle 中创建一个公用表。可以使用 ui 进行编辑,例如:
id|tax1|tax2|tax3
------------------
1 | 5 | 16| 9
2 | 7 | 1 | 8
用户必须能够添加新列;上一张表必须如下所示:
id|tax1|tax2|tax3|tax4 (the tax4 column was added)
-----------------------
1 | 5 | 16| 9 | 0
2 | 7 | 1 | 8 | 0
添加一个调用“更改表”指令的按钮似乎很容易,但我不想给用户那种权限。我正在考虑将每一列表示为另一个表中的行,并使用 Java 进程在 UI 中构建表。
我遇到的另一个不相关的问题是:表中的数据直接影响计算,如果添加任何列,计算必须考虑新列/列。
【问题讨论】:
-
您确定需要新列吗?这对我来说似乎是糟糕的设计。
-
为什么不拥有一个包含三列的表:Id、Tax# 和 ValueOfTax。这样,您可以将所有信息存储在一个表中而无需更改架构?
-
能够添加新税值的用户要求仍将技术实施留给您。需求合规性测试永远不应依赖于实施方式。
-
我从来没有想过您希望用户在您的数据库中创建新列的场景。我可以想象 DBA 把他们的头发拉出来!您的数据模型存在很大缺陷。而是解决这个问题。从长远来看,你会更快乐。
-
这就是为什么当“用户需求”文档必须包含架构设计时我会畏缩的原因。
标签: java database oracle database-design