我正在尝试对时间表,计费小时数,项目,用户进行建模
什么是在数据库中表示这些内容的最佳方式
详细阐述问题:我最大的困境是如何将日期,时间,项目保持在一起
一种可能的解决方案
用户(PK id,名称)
项目(PK id,name,FK user_id)
BillableHour(PK id,FK project_id,小时,日期)
谢谢
答案 0 :(得分:1)
从您想要的报告开始,然后向后工作。
最小输入单位是“活动”,“持续时间”,但如果使用该最小值,则可以使用sri.attends.scrum.for.parisian.branch.of.client50.via.scype.from.home等活动。 to.discuss.installation.routine.of.zoom22,您的报告代码将包含很多switch语句。
据推测,您将至少有一个报告,其中包含姓名,活动描述以及给定时间段的总时间。如果这是您唯一的报告,您可以将其实现为四字段列表:工作者(字符串),任务(字符串),开始(时间),持续时间(整数)。如果有报告要求分配给特定项目的所有活动,或者一个用于活动类型X的所有活动,或者将活动分配给特定客户的报告,那么您的设计将受益于更多领域。
也许你有一份报告可以区分家庭办公室的installation.server.updates和warzone中活跃的敌人枪声下的安装.server.updates。如果您的时间日志屏幕上有一个“while.a.target”复选框,则可以为您的用户节省时间。
答案 1 :(得分:0)
如果您不熟悉普通表格,那么值得学习。保存您在数据库中存储冗余数据(以及其他好处)。
http://databases.about.com/od/specificproducts/a/firstnormalform.htm
答案 2 :(得分:0)
我可以从非常高的层面告诉你我是如何在一个非常简单的时间保持应用程序的。虽然,这不一定是最好的方式。
我目前没有方便的ER图表,但这只是一组表格的基本起点。
用户 ID PK
的UserRole UserID FK RoleID FK
角色 ID PK 名称
UserProject ID PK UserID FK ProjectID FK HoursAvailable
客户 ID PK 名称
项目 ID PK CustomerID FK
EntryType ID PK 姓名(即可计费,不可计费等)
条目 ID PK UserID FK ProjectID FK EntryTypeID FK 小时 日期 TaskName(这可以进一步规范化,特别是如果你想要一堆任务) 描述
我可以继续,但你明白了。
答案 3 :(得分:0)
以下是我的旧会计系统使用的一些表的简要(和不完整)摘要: