【问题标题】:difficulty to store the data in the table难以将数据存储在表中
【发布时间】:2014-01-30 07:16:51
【问题描述】:

我很难将数据存储在表中。你能建议我轻松存储数据吗?

在下表 1 中,员工每天以不同的员工顺序工作,因此我输入如下的工作时间。为此,我每天都在更改表格并添加列名称,例如 09-JAN-12,10-JAN-12 以输入每个员工的工作时间。有没有其他简单的方法可以将表中的数据存储在多个表中并分别查询记录。

-----------------------------------------------------------
emp_name emp_order   05-Jan-12     06-Jan-1207-Jan-12
-----------------------------------------------------------
aaaaa    order11        3hours     5hours       6hours
aaaaa    order12        4hours     2hours       9hours
aaaaa    order13        8hours     3hours       7hours
ccccc    order11        3hours     5hours       6hours
ccccc    order12        4hours     2hours       9hours
ccccc    order13        8hours     3hours       7hours
bbbbb    order11        3hours     5hours       6hours
bbbbb    order12        4hours     2hours       9hours
bbbbb    order13        8hours     3hours       7hours
-----------------------------------------------------------

我尝试过的:我没有添加列,而是输入如下数据。它也很难输入。

----------------------------------------------
emp_name    emp_order   working_Hours       date
----------------------------------------------
aaaaa       order11     5hours          05-JAN-12
aaaaa       order12     2hours          05-JAN-12
aaaaa       order13     3hours          05-JAN-12
ccccc       order11     5hours          05-JAN-12
ccccc       order12     2hours          05-JAN-12
ccccc       order13     3hours          05-JAN-12
bbbbb       order11     5hours          05-JAN-12
bbbbb       order12     2hours          05-JAN-12
bbbbb       order13     3hours          05-JAN-12

aaaaa       order11     6hours          06-JAN-12
aaaaa       order12     9hours          06-JAN-12
aaaaa       order13     7hours          06-JAN-12
ccccc       order11     6hours          06-JAN-12
ccccc       order12     9hours          06-JAN-12
ccccc       order13     7hours          06-JAN-12
bbbbb       order11     6hours          06-JAN-12
bbbbb       order12     9hours          06-JAN-12
bbbbb       order13     7hours          06-JAN-12

aaaaa       order11     7hours          07-JAN-12
aaaaa       order12     6hours          07-JAN-12
aaaaa       order13     3hours          07-JAN-12
ccccc       order11     7hours          07-JAN-12
ccccc       order12     6hours          07-JAN-12
ccccc       order13     3hours          07-JAN-12
bbbbb       order11     7hours          07-JAN-12
bbbbb       order12     6hours          07-JAN-12
bbbbb       order13     3hours          07-JAN-12

--------------------------------------------------

请帮我解决这个问题。

【问题讨论】:

  • “很难进入”对您来说意味着什么?第二个数据模型是正确的(尽管我假设您实际上存储的不是字符串“5hours”,而是数字 5)。数据输入是前端应用程序的一项功能。
  • 谢谢你,我的意思是,有没有其他好方法可以将工作时间和日期存储在不同的表中,我不必再次输入 emp_name、emp_order 详细信息。
  • 您认为任何其他数据模型都可以很好地存储记录吗?
  • 您是说您没有employee 表或order 表吗?我假设您拥有这两个表,并且 emp_nameemp_order 是指向父表中相应行的外键。
  • 你的第二个模型是正确的。如果每天为每个员工输入多行相同的数据很困难,您可以考虑存储过程。或者为每个员工创建应用程序来记录他们的工作时间

标签: sql oracle database-design data-structures plsql


【解决方案1】:

创建一个只有列 emp_name,emp_order 的表视图,然后根据您创建的视图尝试在您的前端 emp_name 和 emp_order 作为下拉列表。然后在前端输入工作小时和日期(您也可以根据 trunc(sysdate) 将日期设为默认值)

【讨论】:

  • UI 部分很好...在第二个模型中存储数据很好吗?我想如果我们拆分这张桌子应该没问题。你的意思是我在第二个数据模型上是对的吗?
  • 第二个模型是对的,如果你创建一个视图你可以节省冗余数据
【解决方案2】:

你的第二个模型更好,你可以在上面使用这个查询:

select 
emp_name,
emp_order,
rtrim (xmlagg (xmlelement(e,Date||'('||working_Hours||'Hours), ')).extract ('//text()'), ', ') as Final_Date
from 
Table1
where 
group by emp_name,emp_order;

【讨论】:

  • 我没听懂你在说什么...你能解释一下吗?
  • 非常简单,您可以使用以下列创建表:emp_name,emp_order,working_Hours,date,您可以通过我的查询看到您的第一个表结果
猜你喜欢
  • 2017-06-21
  • 2018-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-17
  • 2011-10-13
  • 1970-01-01
相关资源
最近更新 更多