【发布时间】:2021-07-22 17:30:08
【问题描述】:
我看到了类似的问题,大部分都变成了关于表设计、规范化等的争论。并非所有人都有让我们的客户改变他们的数据库设计的奢侈。
这是我的困境。我的客户要求我让他们的员工能够增加前一天的呼叫时间。我将提供一个弹出窗口,允许他们输入前一天的 callout_start 和 callout_stop。许多人已经在前一天收到了通知。
CREATE TABLE MyTable(
empNo int NOT NULL,
workDate datetime NOT NULL,
callout_start1 datetime NULL,
callout_stop1 datetime NULL,
callout_start2 datetime NULL,
callout_stop2 datetime NULL,
callout_start3 datetime NULL,
callout_stop3 datetime NULL,
callout_start4 datetime NULL,
callout_stop4 datetime NULL,
callout_start5 datetime NULL,
callout_stop5 datetime NULL,
callout_start6 datetime NULL,
callout_stop6 datetime NULL,
callout_start7 datetime NULL,
callout_stop7 datetime NULL,
callout_start8 datetime NULL,
callout_stop8 datetime NULL,
callout_hours decimal(5, 2) NULL
)
我希望他们能够更新前一天的下一个可用标注。 IOWs - 第一个为空的标注。
SQL 必须是通用的。我正在写入 dbIsam 数据库,该数据库将通过 remObjects 同步到 MS/SQL DB。
谢谢
【问题讨论】:
-
由于您有一个 GUI(“将提供一个弹出窗口以允许他们输入 callout_start”),您还可以将该逻辑移动到您的应用程序而不是 SQL 中。我认为这将比编写一个您最终无法服务的 SQL 语句更易于维护。
-
不确定你在说什么。 GUI 没有数据绑定。技术人员可能会进行 20 次呼叫。怀疑他会记得有多少。