0

此处的表格允许我租用一个视频,但我希望能够为一个租借 ID 或一个租借记录租用多个视频。

视频(videoID、videoName、ageClassification、流派)

租金(RentalID、videoID、customerID、dateHired、dateDueBack、价格、逾期(Y/N))

我是否对包含视频 ID 的视频 ID 使用逗号分隔值。

或者可能有一个名为rented_videos 的单独表链接到租借表,因此每次租借可以租用1 个或多个视频。

甚至是替代解决方案。

请原谅我的关系模式,我不是数据库专家。

4

2 回答 2

1

您绝对不应该使用 csv 列表,如果您想查找特定视频的所有租借内容,这会使索引变得丑陋。

处理此问题的最常见和最简洁的方法是创建一个中间表,其中包含指向 videoID 和 RentalID 的外键。这应该是适合你的方式。

于 2013-01-30T15:25:52.023 回答
1

像往常一样,没有一个正确的答案 - 但在错误的答案中,CSV 列表在列表中非常高!

首先,企业是否将“租借”视为自己的事情,还是每个视频租借都是一个单独的事件?我对业务的了解不够多,无法发表意见 - 但我想业务域有一个“租借”,意思是租用一个标题,有价格和归还日期(不同的视频似乎有不同的租借周期 - 新版本 2 天,旧电影一周;也许某处有一个“租赁类型”表)。单次交易——即我去音像店——将包括一个或多个租赁,每个租赁都有其成本和到期日;我似乎还记得如果您采用某种租金组合,可能会获得折扣。

所有这些都表明:

Video
-------
Video_ID
Rental_scheme_ID
Name
...

Rental_scheme
--------
Rental_scheme_id
Length_in_days
Cost

Rental
------
Video_id
transaction_id


Transaction
----------
Customer_id
Date
Undiscounted_price
Discount
NetPrice
...

如果这是过度设计,并且业务说“不,我们只是想跟踪谁借了什么”,请使用您现有的模式并为您租用的每部电影插入一个新行。

于 2013-01-30T15:39:22.137 回答