数据库

1、键:主键是表中的标志列。一个键可能由几列组成。可以使用键作为表格之间的引用。

mysql的结构表 mysql数据库表结构_数据库

 

CustomerID是Customers表的主键,当它出现在其他表,例如Orders表中的时候就称它为外键。

2、模式

数据库整套表格的完整设计称为数据库的模式。

一个模式应该显示表格及表格的列、每个表的主键和外键。

一个模式并不会包含任何数据,但是我们可能希望在模式里使用示例数据来解析这些数据的含义。

例如:Customers(CustomerID, Name, Address, City)

Orders(OrderID, CustomerID, Amount, Date)

下划线的元素表示该元素是所在关系的主键,斜体元素是所在关系的外键。

3、关系

外键表示两个表格数据的关系。根据关系双方所含对象的多少,可以将这些关系分为一对一、一对多、多对多。

设计数据库

1、考虑建模的实际对象

要建模的每一种现实世界对象都需要有自己的表。

2、避免保存冗余数据

要避免3种情况的更新不规则:修改、插入和删除不规则。

3、使用原子列值

对每一行的每个属性只存储一个数据。下图Books Ordered不符

mysql的结构表 mysql数据库表结构_mysql的结构表_02

当两个对象存在多对多关系时,例如订单和书籍的关系,需要创建以下一个新表,Order_Items

mysql的结构表 mysql数据库表结构_数据库_03

4、选择有意义的键

应该确认所选择的键是唯一的。

5、避免多个空属性的设计

数据库里有许多空值是一件糟糕的事情。它极大的浪费空间,并且在统计列总量或对其他数值列应用计算函数时可能导致错误。

6、数据库表格类型

简单表:描述现实世界对象的简单表。这些表也可能包含其他简单对象的键,它们之间有一对一或一对多的关系。

关联表:描述两个现实世界对象的多对多关系。

 

 web数据库架构

mysql的结构表 mysql数据库表结构_Web_04

一个典型的Web数据库事务包含以下步骤:

(1)用户的Web浏览器发出HTTP请求,请求特定Web页面。例如,该用户可能以HTML表单的形式,要求搜索书店里所有由Thomson编写的图书。搜索结果网页称为result.php。

(2)Web服务器收到result.php的请求,获取该文件,并将它传到php引擎,要求它处理。

(3)php引擎开始解析脚本。脚本中有一条连接数据库的命令,还有执行一个查询(执行搜索图书)的命令。php打开通向Mysql数据库的连接,发送适当的查询。

(4)Mysql服务器接受数据库查询并处理。将结果(一个图书的列表)返回到php引擎。

(5)php引擎完成脚本运行,通常,这包括将查询结果格式化成HTML格式。然后再将输出的HTML返回到Web服务器。

(6)Web服务器将HTML发送到浏览器。这样用户就可以看到他所搜索的图书。