Sakila可以作为数据库设计的参考,
下载地址: http://download.csdn.net/detail/issagui/2181393
sakila-schema.sql 文件包含创建Sakila数据库的结构:表、视图、存储过程和触发器
sakila-data.sql文件包含:1)使用INSERT语句填充数据;2)在初始数据加载后,必须创建的触发器的定义
sakila.mwb文件是一个MySQLWorkbench数据模型,可以在MySQL的工作台打开检查数据库结构。
salila共有16张表
01演员表 actor
02地址表address
03分类表category
04城市表 city
05国家表country
06客户表customer
07电影表 film
08*film_actor表
09*film_category表
10*film_text表
11库存表inventory
12语言表language
13*付款表 payment
14租金表rental
15工作人员表 staff
16存储表 store
【01 演员表actor】
演员表列出了所有演员的信息。演员表和电影表之间是多对多的关系,通过film_actor表建立关系
1 2 3 4
| actor_id:代理主键用于唯一标识表中的每个演员 first_name:演员的名字 last_name:演员的姓氏 last_update:该行已创建或最近更新的时间 |
【02 地址表address】
地址表包含客户、员工和商店的地址信息。地址表的主键出现在顾客、员工、和存储表的外键 。
1 2 3 4 5 6 7 8
| address_id:代理主键用于唯一标识表中的每个地址 address:地址的第一行 address2:一个可选的第二行地址 district:该地区的所属地区,这可以是国家,省,县等 city_id: 指向城市表的外键 postal_code:邮政编码 phone:地址的电话号码 last_update:该行已创建或最近更新的时间 |
【03 分类表category】
类别表列出了可以分配到一个电影类别。分类和电影是多对多的关系,通过表film_category建立关系
1 2 3
| category_id:代理主键用于唯一标识表中的每个类别 name:类别名称 last_update:该行已创建或最近更新的时间 |
【04 城市表city】
城市表包含的城市名单。城市表使用外键来标示国家;在地址表中被作为外键来使用。
1 2 3 4
| city_id:代理主键用于唯一标识表中的每个城市 city:城市的名字 country_id:外键,用于标示城市所属的国家 last_update:该行已创建或最近更新的时间 |
【05 国家表country】
国家表中包含的国家名单。国家表是指在城市表的外键。
1 2 3
| country_id:代理主键用于唯一标识表中的每个国家 country:国家的名称 last_update:该行已创建或最近更新的时间 |
【06 客户表customer】
客户表包含了所有客户的列表 。客户表在支付表和租金表被作为外键使用;客户表使用外键来表示地址和存储。
1 2 3 4 5 6 7 8 9
| customer_id:代理主键用于唯一标识表中的每个客户 store_id:一个外键,确定客户所属的store。 first_name:客户的名字 last_name:客户的姓氏 email:客户的电子邮件地址 address_id: 使用在地址表的外键来确定客户的地址 active:表示客户是否是活跃的客户 create_date:顾客被添加到系统中的日期。使用 INSERT 触发器自动设置。 last_update:该行已创建或最近更新的时间 |
说明:
active: 此设置为“ FALSE“作为替代客户彻底删除。大多数查询应该有一个WHERE active = TRUE 字句。
store_id: 此处的客户不仅限于只由这家商店出租,而是包括客户常常去逛的商店
【07 电影表film】
电影表是一个可能在商店库存的所有影片名单。每部影片的拷贝的实际库存信息保存在库存表。电影表指使用外键来标示语言表;在film_category、film_actor和库存表中作为外键使用。
1 2 3 4 5 6 7 8 9 10 11 12 13
| film_id:代理主键用于唯一标识表中的每个电影 title:影片的标题 description:一个简短的描述或电影的情节摘要 release_year:电影发行的年份 language_id:使用外键来标示语言 original_language_id:电影的原始语音。使用外键来标示语言 rental_duration:租赁期限的长短,以天作为单位 rental_rate:指定的期限内电影的单位租金 length:影片的长度,以分钟为单位。 replacement_cost:如果电影未被归还或损坏状态向客户收取的款项 rating:分配给电影评级。可以是 G, PG,PG -13, R 或NC -17 special_features:包括DVD上常见的特殊功能的列表 last_update:该行已创建或最近更新的时间 |
特殊功能包括零个或多个拖车、评论、删剪片段、幕后。
【08 * film_actor表】
film_actor表是用来支持许多电影和演员之间的多对多关系。对于每一个给定的电影演员,将有film_actor表中列出的演员和电影中的一个行。
film_actor表指的是使用外键的电影和演员表。
1 2 3
| actor_id:用于识别演员的外键 film_id:用于识别电影的外键 last_update:该行已创建或最近更新的时间 |
【09 * film_category表】
film_category表是用来支持许多电影和类别之间的多对多关系。应用于电影的每个类别中,将有film_category表中列出的类别和电影中的一个行。
film_category表是指使用外键的 电影 和类别表。
1 2 3
| film_id:用于识别电影的外键 category_id:用于识别类别的外键 last_update:该行已创建或最近更新的时间 |
【10 * film_text表】
film_text表是Sakila样例数据库唯一使用MyISAM存储引擎的表。此表提供允许全文搜索电影表中列出的影片的标题和描述。film_text表包含的film_id,标题和描述的列电影表,保存的内容与电影表上的内容同步(指电影表的插入、更新和删除操作)
1 2 3
| film_id:代理主键用于唯一标识表中的每个电影 title:影片的标题 description:一个简短的描述或电影的情节摘要 |
注意:film_text表的内容不应该直接修改。所有的变更来自于电影表。
【11 库存表inventory】
库存表包含一排为每一个给定的电影拷贝在一个给定的存储。库存表是使用外键来识别电影和存储;在出租表中使用外键来识别库存。
1 2 3 4
| inventory_id:理主键用于唯一标识每个项目在库存 film_id:使用外键来识别电影 store_id:使用外键来识别物品所在的商店 last_update:该行已创建或最近更新的时间 |
【12 语言表language】
语言表是一个查找表,列出可能使用的语言,电影可以有自己的语言和原始语言值。
语言表在电压表中被作为外键来使用。
1 2 3
| language_id:代理主键用于唯一标识每一种语言 name:语言的英文名称 last_update:该行已创建或最近更新的时间 |
【13 * 付款表payment】
付款表记录每个客户的付款,如支付的金额和租金的资料。
付款表使用外键来表示客户、出租、和工作人员。
1 2 3 4 5 6 7
| payment_id:代理主键用于唯一标识每个付款 customer_id:使用外键来标识付款的客户 staff_id:工作人员,负责处理支付。使用外键来标识 rental_id: ??? amount:付款金额 payment_date:处理付款的日期 last_update:该行已创建或最近更新的时间 |
【14 租金表rental】
租金表包含一排每个存货项目的租金出租什么项目,当它被租用,而当它返回的信息。
租金表是使用外键来标识库存 ,顾客和工作人员;在支付表中使用了外键来标识租金 。
1 2 3 4 5 6 7
| rental_id:代理主键唯一标识的租金 rental_date:该项目租用的日期和时间 inventory_id:该项目被租用 customer_id:租用该项目的客户 return_date:归还日期 staff_id:处理该项业务的工作人员 last_update:该行已创建或最近更新的时间 |
【15 工作人员表staff】
工作人员表列出了所有的工作人员,包括电子邮件地址,登录信息和图片信息。
工作人员表是指使用外键来标识存储和地址表;在出租、支付和存储表中作为外键。
1 2 3 4 5 6 7 8 9 10 11
| staff_id:代理主键唯一标识的工作人员 first_name:工作人员的名字 last_name:工作人员的姓氏 address_id:工作人员的地址在地址表的外键 picture:工作人员的照片,使用了 BLOB属性 email:工作人员的电子邮件地址 store_id:工作人员所在的商店,用外键标识 active:是否是活跃的工作人员。 username:用户名,由工作人员用来访问租赁系统 password:工作人员访问租赁系统所使用的密码。使用 SHA1 函数来保存密码. last_update: The time that the row was created or most recently updated. |
active: 工作人员离开,将此列设为FALSE,而并不是真正删除
【16 存储表store】
存储表列出了系统中的所有商店 。
存储表是指使用外键来标识工作人员和地址;在员工、客户、库存表作为外键使用。
1 2 3 4
| store_id:代理主键唯一标识的商店 manager_staff_id:使用外键来标识这家商店的经理 address_id:使用外键来确定这家店的地址 last_update:该行已创建或最近更新的时间 |