在线等待:请教这里的数据库高手一个简单的数据表设计问题!!

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


另外:我用的数据库是access,用查询是否能解决问题?我想采用断开式访问数据库,将数据同时加载到数据集。

10 个解决方案

#1


请说清楚...

你的员工对房间是固定的吗?
如果是固定的那么 员工编号 放在 房间表中
这么一个员工就可以对多间房进行管理

#2


谢谢你及时 的回答,员工对房间来说 是固定的!
变动性不是很大,以后还要考虑变动的情况表!

#3


员工编号 放在 房间表中???上面的朋友,如果那样的话,我在登记房间信息的时候,员工的编号何来之有呢? 我不想 建立第三个表,就是有这个顾虑

#4


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

#5


不懂你的意思。。。。。

员工编号当然是你自己填上去的啊。。

关联是为什么。。是为他的数据完整性

假如说员工表中有个员工叫A

那么房间表中也只有A

那么就是说房间表依赖员工表...

#6


moo说的入住情况表。。。

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

#7


晕,这么简单的情况。

1。员工表
2。房间表

3。房间员工表。这个表记录每个房间和员工之间的联系。如果你有房间可以住一个人,有的可以住两个人,以及房间的价格等,这些信息是在房间表中的,不在这个里边。 而当一个人入住的时候,可以调用你公司要求的逻辑。

这个表中可以这样。
房间A, 人员A
房间A,人员B,
房间C, 人员C
这个表要有入住时间和搬出时间,
要找出目前每个房间谁在住,只要入住时间<=今天,搬出时间>=今天就可以了,
这样做的好处,你保存所有的历史记录。

对于负费用,当然是另外一个表格来存,比方可以用这个

房间号
员工号
开始日期
结束日期
付费日期
等等。。。
至于每个表格的主键以及他们之间的关系,很容易用ER图划了。
你可以试试,以后如果你要加什么东西,是不是比较容易,而且条理清晰。

#8


单是考虑这二个表,那么用二张表就够了,
员工所住房间,算在员工属性里,查询起来很方便
在说 员工和房间之间的关系,没必要用一张表来保留二者间的联系,
反而使操作繁琐。
 如工员工要调换房间 


员工表:员工编号,姓名,性别,年龄,房间编号
房间表:房间编号,可住人数,收费标准
事件表: 员工编号,房间编号,换房事由,时间

#9


谢谢这么朋友,热情的支持,我由于情况划分得不清楚,现在详细一些!
员工和房间,对应的是学生和宿舍的关系。这种情况该将上面的如何细化一下呢?

#10


还是决定用方案二!

#1


请说清楚...

你的员工对房间是固定的吗?
如果是固定的那么 员工编号 放在 房间表中
这么一个员工就可以对多间房进行管理

#2


谢谢你及时 的回答,员工对房间来说 是固定的!
变动性不是很大,以后还要考虑变动的情况表!

#3


员工编号 放在 房间表中???上面的朋友,如果那样的话,我在登记房间信息的时候,员工的编号何来之有呢? 我不想 建立第三个表,就是有这个顾虑

#4


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

#5


不懂你的意思。。。。。

员工编号当然是你自己填上去的啊。。

关联是为什么。。是为他的数据完整性

假如说员工表中有个员工叫A

那么房间表中也只有A

那么就是说房间表依赖员工表...

#6


moo说的入住情况表。。。

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

#7


晕,这么简单的情况。

1。员工表
2。房间表

3。房间员工表。这个表记录每个房间和员工之间的联系。如果你有房间可以住一个人,有的可以住两个人,以及房间的价格等,这些信息是在房间表中的,不在这个里边。 而当一个人入住的时候,可以调用你公司要求的逻辑。

这个表中可以这样。
房间A, 人员A
房间A,人员B,
房间C, 人员C
这个表要有入住时间和搬出时间,
要找出目前每个房间谁在住,只要入住时间<=今天,搬出时间>=今天就可以了,
这样做的好处,你保存所有的历史记录。

对于负费用,当然是另外一个表格来存,比方可以用这个

房间号
员工号
开始日期
结束日期
付费日期
等等。。。
至于每个表格的主键以及他们之间的关系,很容易用ER图划了。
你可以试试,以后如果你要加什么东西,是不是比较容易,而且条理清晰。

#8


单是考虑这二个表,那么用二张表就够了,
员工所住房间,算在员工属性里,查询起来很方便
在说 员工和房间之间的关系,没必要用一张表来保留二者间的联系,
反而使操作繁琐。
 如工员工要调换房间 


员工表:员工编号,姓名,性别,年龄,房间编号
房间表:房间编号,可住人数,收费标准
事件表: 员工编号,房间编号,换房事由,时间

#9


谢谢这么朋友,热情的支持,我由于情况划分得不清楚,现在详细一些!
员工和房间,对应的是学生和宿舍的关系。这种情况该将上面的如何细化一下呢?

#10


还是决定用方案二!