数据库设计方法
一、延續(xù)訓練題
假設你是一個小的錄影帶出租店的老板。你的出租店里面有3000部電影。每部電影都有DVD或VHS錄像帶號碼。對于每部電影,需要知道它的標題和類別(如,喜劇,懸疑,劇情,動作,戰(zhàn)爭,或科幻)。
另外,每部電影可能有多個副本。每部電影有一個特定的ID,一部電影可以是DVD或VHS格式。總是至少有一個DVD或VHS錄像帶關(guān)聯(lián)到每部電影,或者說,每個DVD或VHS錄像帶始終是一個單一的特定電影的拷貝。
顧客很關(guān)注電影主演的具體實施者。梅爾?吉布森和朱莉婭羅伯茨很受歡迎。所以每部電影的主演需要了解。不是所有的電影有明星演員。客戶想知道每個演員的“真實”出生時的名字和出生日期。我們需要在展現(xiàn)電影中主要演員。
顧客會來我們的出租店租影碟,你需要記錄每個顧客的的姓名、電話號碼、以及地址。當然,每個我們的會員都有一個會員號碼。
我們需要記錄哪些影碟哪位客戶目前已租借。客戶可以租借出多張DVD或磁帶在任何給定的時間。我們需要保留我們所有的出租的歷史。每當一個客戶租用一臺DVD和/或磁帶,我們想保持出租的日期/時間和返回的日期/時間。我們所有的租金根據(jù)返回的時間來計算,所以并不需要保持一個到期日。
保持這個租賃歷史將讓我們分析我們的租金的模式。我們將能夠確定有多少DVD /磁帶每一個客戶的租金多少次,客戶已恢復DVD或磁帶晚。我們也將知道多少次特定的DVD或錄像帶已被使用,就會知道什么時候退役每一個。
要求:
1、根據(jù)題意理解,分析設計滿足需求的表,可以用表格表示,也可以用ER圖表示。
一、影片表:
表一:影片表
| 表名 | Movies | ? | ||
| 列名 | 數(shù)據(jù)類型 | 空/非空 | 約束條件 | 備注 |
| V_id | int | not null | ?primary key | 影片id |
| name | varchar(64) | not null | ? | 影片名稱 |
| Director | varchar(64) | not null | ? | 影片導演 |
| m_actor | varchar(64) | not null | ? | 影片主演 |
| Date | varchar(64) | not null | ? | 上映時間 |
| introduction | varchar(64) | not null | ? | 影片簡介 |
| T_id | int | not null | foreign key | 影片類型ID |
???????????????????????????????????表二:影片類型
| 表名 | Movies | ? | ||
| 列名 | 數(shù)據(jù)類型 | 空/非空 | 約束條件 | 備注 |
| T_id | Int | not null | ? | 類型ID |
| Type_name | varchar(64) | not null | ? | 類型名稱 |
二、會員表:
| 表名 | Member | ? | ||
| 列名 | 數(shù)據(jù)類型 | 空/非空 | 約束條件 | 備注 |
| N_id | int | identity | primary key | 會員ID |
| name | varchar(64) | not null | ? | 會員姓名 |
| gender | varchar(64) | not null | ? | 會員性別 |
| Id_card | varchar(64) | not null | ? | 會員身份證號 |
| Ph_nu | int | not null | ? | 會員電話號碼 |
| address | varchar(64) | not null | ? | 會員地址 |
三、影碟表:
| 表名 | DVD-Video | ? | ||
| 列名 | 數(shù)據(jù)類型 | 空/非空 | 約束條件 | 備注 |
| D_id | int | identity | primary key | 影碟ID |
| format | varchar(64) | not null | ? | 影碟格式 |
| language | varchar(64) | not null | ? | 影碟語言 |
| Purchase_?time | varchar(64) | not null | ? | 進貨時間 |
| state | varchar(64) | not null | ? | 影碟狀態(tài) |
| inventory | int | not null | ? | 庫存數(shù)量 |
四、租借表:
????????????????????表一:租借總表
| 表名 | Rent | ? | ||
| 列名 | 數(shù)據(jù)類型 | 空/非空 | 約束條件 | 備注 |
| id | int | not null | primary key | 記錄ID |
| D_id | int | not null | ? | 出租影碟ID |
| V_id | int | not null | ? | 出租影片ID |
| N_id | int | not null | ? | 租借會員ID |
| number | int | not null | ? | 租借數(shù)量 |
| sum | float | not null | ? | 金額 |
| O_time | varchar(64) | not null | ? | 應歸還時間 |
| A_time | varchar(64) | not null | ? | 實際歸還時間 |
| Z_time | varchar(64) | not null | ? | 租借時間 |
| T_id | int | not null | foreign key | 租借類型ID |
表二:租金
| 表名 | Money | ? | ||
| 列名 | 數(shù)據(jù)類型 | 空/非空 | 約束條件 | 備注 |
| T_id | int | not null | ? | 租借類型ID |
| Money_day | float | not null | ? | 每日租金 |
| introduction | varchar(64) | not null | ? | 租金介紹 |
?
總結(jié)
- 上一篇: MySQL流浪记(一)—— 初步认识数据
- 下一篇: linux cmake编译源码,linu