1

我最近开始了一个小的 asp.net c# 项目,用于为日期安排资源。手头的具体任务是允许我在某些日子将工人分配给工作几个小时。基本上这样我就可以检查谁在做什么,在工作上花了多少时间等等。

我想与社区核实处理此类场景的标准方法,并就我概述的 bdlow 预期方法获得一些反馈。特别是我对适合此应用程序和数据库结构的 UI 控件感兴趣。

这是我计划做的,但似乎有点麻烦,我希望有一种更简单的方法我错过了。

数据库结构
表:Job,列:Id、JobNumber、Description、HoursAllocated 表
:Employee,列:Id、Name
表:EmployeeJob:JobId、EmployeeId、Date、Hours

UI
创建一个 DataTable,其中每个作业都有一行,并在接下来的 3 个月中为每一天添加一列。添加日期列时,我会检查任何 EmpployeeJob 记录并添加当天的小时数。数据表将绑定到 UI 中的 DataGrid,用户可以滚动查看网格,查看谁在做什么以及何时工作。

对当前方法的担忧
我已经进行了一些快速测试,这种方法似乎很慢。我已经研究了特定的调度 asp.net 控件,但似乎没有什么是理想的,为了简单起见,我想使用标准控件。

我的测试显示为大约 500 个工作构建 DataTable,耗时 3 个月,只有几个计划测试的员工花费了大约 10 秒的时间。这让我考虑将日历日期也存储到数据库中,但这似乎有点矫枉过正,并且需要维护或填充未来的数据。我正在使用实体数据模型并通过 linq 从后面的代码访问表。

您将用于安排员工工作的开发方法/数据结构/控件是什么?

4

1 回答 1

0

我不认为你离得那么远——表格结构看起来很标准,但 UI 看起来更像 SSMS 或 Access 而不是 web。我不会担心尝试让您的 UI 与您的表格匹配,并首先关注页面,而不依赖于数据结构。如果您是用户,查看/输入数据的最简单方法是什么?

现在加载数据可能太慢了,但您可能永远不必加载那么多数据。如果您将搜索功能(按工作、日期、员工)和分页添加到网格中,这将限制您在任何时候需要返回的数据量。

您可以查看 GridView/ListView 和 DetailsView 作为显示信息的选项。考虑使用某种映射层将原始数据转换为您的 UI 需要的数据——这样您的界面与数据层的耦合就不会那么紧密,并且如果需要,以后更容易更改。

于 2012-09-15T06:14:14.697 回答