日期:2014-05-17  浏览次数:20791 次

疑惑我已经结贴的一个问题
原帖在这里
http://topic.csdn.net/u/20080923/15/69b9d670-a167-4426-9d60-f50ba8b4aa1d.html

注意Room这个表中。我在上个帖子中认为,Room表中的hotelNo是一个外键。但是在上一个表中的描述中,说道:Room contains room details for each hotel and (roomNo, hotelNo ) forms the primary key ; 

那我应该怎样做呢?

------解决方案--------------------
这个描述没问题呀。你说你该怎样做呢是什么意思?
------解决方案--------------------
你人品没问题啊,你的理解好像也没问题.
------解决方案--------------------
hotelNo 是HOTEL表的外键
------解决方案--------------------
说错了 HOTEL表的主键hotelNo 作为Room表的外建存在
------解决方案--------------------
探讨
是这样的,上个已结贴的问题,是我做的一个习题。习题里边有很多问题,其中一个问题是,找出这个schema中的外键。
但是习题的描述里边称,Room表中的hotelNo这列属于主键中的一列。那么外键中还能包含这个hotelNo这列吗?

在那个已结贴的帖子中,我说 在Room表中,hotelNo是外键。
但是,那个结贴的帖子中已经说到:Room contains room details for each hotel and (roomNo, hotelNo ) forms the primary key ;

所以…

------解决方案--------------------
一個表的主鍵做為關聯表的外鍵不是很正常嗎
主鍵約束本表
外鍵約束關聯表
之間好像沒什麼沖突吧
------解决方案--------------------
探讨
哦,谢谢各位啊。
我后来又看了一下英文的描述,它说room里边的roomNo,hotelNo是主键,并且room里边的hotelNo还是外键?
主外键是一个?这样情况可以吗?我怕我做错了。
那要是我这样创建room表,对不对?
Room (roomNo, hotelNo, type, price)
CREATE TABLE Room(
roomNo datatype(),
hotelNo ...
...
CONTRAINT rm_rn_pk PRIMARY KEY (roomNo,hotelNo)
);

那如果在booking这个表中…