作为C#数据库学习锻炼,做个管理方面的程序,有两张表:
员工表:员工编号,姓名,性别,年龄,
房间表:房间编号,可住人数,收费标准
想实现的简单功能:有房间编号,能查询出所有员工姓名;由某个房间编号查询出交了多少费用(收费标准*已住人数),
现在的问题是:一 :
是要建立第三张表(员工编号,房间编号)来关联前面的表呢?
二: 还是说直接把房间编号,一项也放在员工表里面?
如果按照一,那么在建立表一,表二时候,表三的一些项为空(没有信息)。
如果按照二,不符合建表规则。 请大家帮忙!
另外:我用的数据库是access,用查询是否能解决问题?我想采用断开式访问数据库,将数据同时加载到数据集。

解决方案 »

  1.   

    >>员工表:员工编号,姓名,性别,年龄,
    >>房间表:房间编号,可住人数,收费标准
    交费是对员工来讲的.而且各月都有可能交费... 单独建一个表
    员工住某房间,当然用一个 入住情况表 来记录比较方便...
      

  2.   

    moo说的入住情况表这样的话你一个房间不可以一辈子都是那个人住吧。。要是A走了。B进来.你把员工号改成B
    那A住过的这个记录就被消掉了
      

  3.   

    晕,这么简单的情况。1。员工表
    2。房间表3。房间员工表。这个表记录每个房间和员工之间的联系。如果你有房间可以住一个人,有的可以住两个人,以及房间的价格等,这些信息是在房间表中的,不在这个里边。 而当一个人入住的时候,可以调用你公司要求的逻辑。这个表中可以这样。
    房间A, 人员A
    房间A,人员B,
    房间C, 人员C
    这个表要有入住时间和搬出时间,
    要找出目前每个房间谁在住,只要入住时间<=今天,搬出时间>=今天就可以了,
    这样做的好处,你保存所有的历史记录。对于负费用,当然是另外一个表格来存,比方可以用这个房间号
    员工号
    开始日期
    结束日期
    付费日期
    等等
    至于每个表格的主键以及他们之间的关系,很容易用ER图划了。
    你可以试试,以后如果你要加什么东西,是不是比较容易,而且条理清晰。