资源分配模型

时间:2009-07-17 19:43:34

标签: c# model nhibernate-mapping

我正在研究一个时间管理项目并寻找一些实用的对象/持久性模型。 Fowler在他的“分析模式”一书中对资源分配有一些很好的想法,但是很多都是因为我现在需要的东西,而且是设计,高度概念化(而不是可实现的)

我正在考虑的焦点概念对象是一个Allocation对象,它看起来像:

Allocation : Entity
-------------
Id : Id
ResourceId : Id
AtivityId : Id
EventDate ; DateTime
TimeSpent : TimeQuantity

我也认为这将是一个数据库表,虽然我不确定它是否是资源和活动之间的关联表,或者是一个独立的查找表(域强制参照完整性)。 / p>

另外两个概念对象是资源和活动。两者都有一组Allocations,但在那之后我有点陷入困境,想出接口。不同类型的员工和顾问是感兴趣的资源。活动的主要兴趣将基于项目,非项目活动基于各种工资核算。

这是一个使用nhibernate的c#项目。

我意识到这是一个广泛的问题,而不是关于编程本身的问题。如果有人知道更适合讨论这个问题的论坛,那就太好了。如果您对该域名有一些经验并且有一些您愿意分享的想法或链接,那就太棒了!

对ORBMAN的回应

好问题:

1)跟踪谁的时间(资源),可以是      - FullTimeStaff
     - AdminStaff
     - 顾问
2)录音周期为每周一次      - 用户可以在发布之前的任何时间输入和修改花费的时间      - 必须每周(周日)张贴时间表以供部门经理审核         (系统不会让用户发布,除非符合每周配额)      - 经理必须在下周二批准/拒绝     3)时间必须分配给活动,这是两种基本类型
     - 基于项目的活动
     - 非项目活动(最终发布到各个P / R账户)
    4)通过临时时间段提供的资源或活动s / b报告。

我遇到的主要问题围绕资源和活动所需的多态性以及如何持久化。在域中,拥有IResource或IActivity更有用,它们都实现了IAllocatable:     UniqueId:Id     BusinessId:string     描述:字符串     分配:ISet

资源只能为Activity分配时间的约束使得它们不同(Activity需要ClockIn方法而Resource不需要)。两者都需要是用于系统中其他目的的众所周知的对象的包装器(即StaffMember,Project)。

我需要一个唯一的持久性ID,也许是分配本身的代理键。我也不确定分配和包装的资源/活动之间是否必须存在参照完整性,以及如果必须如何映射。我一直在使用Fluent NHibernate,但我认为最好只使用NHibernate。

再次感谢您提出的好问题。

0 个答案:

没有答案