我在一个共享预订系统上工作,表将是每个单独的用户一个用户表和一个预订表。一个用户可以有多个预订,一个预订在每个单独预订中最多只能有8个用户。在每个单独的预订中,我需要存储每个用户的ID和他们的行李箱数量。有什么方法可以轻松高效地设计这一点?就像在预订中一样,可能有8个不同的用户外键和8个与自己的用户相关的不同数量的行李箱?
如有任何建议,我们将不胜感激。
v64noz0r1#
每次预订8个用户的限制是系统的限制,而不是任何数据库的限制。这是一个武断的问题,但看到你正在使用的字段看起来更像是家庭作业,而不是任何实际有用的东西,所以我想这是给定的。我的观点是,在设计数据库时可以忽略该限制。考虑到这一点,您有三个表:
User
id
name
address
Booking
suitcases
UserBooking
user_id
booking_id
对于每个预订8个用户的限制,如果条件不成立,可以使用triggers拒绝UserBooking中的插入,或者在插入之前使用存储过程和事务进行检查。
1条答案
按热度按时间v64noz0r1#
每次预订8个用户的限制是系统的限制,而不是任何数据库的限制。这是一个武断的问题,但看到你正在使用的字段看起来更像是家庭作业,而不是任何实际有用的东西,所以我想这是给定的。我的观点是,在设计数据库时可以忽略该限制。
考虑到这一点,您有三个表:
User
(id
pk,name
,address
)Booking
(id
pk,suitcases
)UserBooking
(id
pk,user_id
fk(User
),booking_id
fk(Booking
))对于每个预订8个用户的限制,如果条件不成立,可以使用triggers拒绝
UserBooking
中的插入,或者在插入之前使用存储过程和事务进行检查。