虽然对方是个女的,虽然对方比较强势,虽然对方开始就态度不是很好。但还是只能怪自己水平太水了。自我介绍完后,对方了解了一下过往项目情况,然后对方口述了一道题目,给了我两张纸,自己记录题目相关信息并写出解决方案。人事管理系统的一个小功能。需求:公司员工分为正式员工和试用员工,正式员工年假为6天,试用员工假期为(一个很长的计算方式,记不得了,只记得和提供的参数信息有关),年假两年内可以累积,两年后没用完的年假作废。请假一次不得超过3天,请假必须提前两天申请。数据库保存字段不能包括已用年假和剩余年假这些字段。要求:自己设计数据库,给出代码设计方案。(15分钟)一直在小作坊里面工作,虽然待过的公司也有上百号人的,但也只能算是小作坊吧,感觉接触不到什么设计,全部都是数据库驱动的。项目在了解完需求后,马上就出数据库设计文档,然后就是大批量的增删改查,我晕啊。虽然自己前前后后有好几次去了解过OOP的设计,但是毕竟公司项目太要求速度了,并且那种开发模式没有经验,所以不敢轻易尝试。困惑:现在的自我感觉是,给我一个功能,我大概能尝试着给出设计方案,但是要记录到数据库就不知道该怎么弄了。感觉业务里面的功能和数据存储的功能(增删改查)之间总是联系不到一块。希望哪位大哥可以给出一点提示,或者给出一个小模块的设计,不需要太具体了,只要点出我的问题即可,谢谢!设计
create table user(--用户表
userid
username
userpassword
usertype
)create table leaveRecord{--请假记录表
userid
creatime --请假时间
leaveLenth --请求长度
}
简单的表设计,可能还需要一个正式工和试用工请求方法的配置表
代码设计方面使用策略模式比较好,针对正式工和试用工使用不同的策略方法去实现
人时间
其他的自己计算
一颗星……
/// <summary>
/// 请假的策略抽象类
/// </summary>
public abstract class LeaveStrategy
{
/// <summary>
/// 是否符合请假通用规则
/// </summary>
/// <returns></returns>
public virtual bool IsMatchRule()
{
bool flag = true;
/*pass 请假一次不得超过3天,请假必须提前两天申请 */
return flag;
} /// <summary>
/// 请假操作
/// </summary>
/// <returns></returns>
public abstract bool LeaveOper();
} /// <summary>
/// 正式工 请假
/// </summary>
public class FormalWorkersLeave : LeaveStrategy
{
public override bool LeaveOper()
{
if (!base.IsMatchRule())
{
return false;
}
bool flag = false;
/*pass 正式工请假的操作 */
return flag;
}
} /// <summary>
/// 使用工请假
/// </summary>
public class TrialWorkLeave : LeaveStrategy
{
public override bool LeaveOper()
{
if (!base.IsMatchRule())
{
return false;
}
bool flag = false;
/*pass 试用工请假的操作*/
return flag;
}
} /// <summary>
/// 请假上下文
/// </summary>
public class LeaveContext
{
private LeaveStrategy _leave; public LeaveContext(/*你的相应参数*/)
{
/*
* 根据参数指定策略
* this._leave = new FormalWorkersLeave();
* 或者
* this._leave = new TrialWorkLeave();
*/
} public bool LeaveOper()
{
return this._leave.LeaveOper();
}
}