Access数据库设计:创建表与选择主键

需积分: 50 0 下载量 7 浏览量 更新于2024-08-15 收藏 1.15MB PPT 举报
"Access数据库中的表与关系设计,特别是如何确定主键的对话框操作" 在Access数据库中,表是存储数据的核心单元,而关系则是连接不同表的关键。本资源主要涉及了创建表以及理解不同数据类型的重要性的知识点。表的创建过程中,选择正确的数据类型对于确保数据的准确性和完整性至关重要。 1. **表的创建** - **使用表设计器创建表**:在Access中,可以使用表设计器来定义字段,设定字段名、数据类型以及大小,以满足不同类型的存储需求。 2. **字段的数据类型** - **文本**:用于存储字母、数字或汉字,最大长度为255个字符。 - **备注**:与文本类似,但最多可存储65,536个字符,不适合做主键。 - **数字**:包括字节、整型、长整型、单精度型、双精度型,以及同步复制ID,每种类型有其特定的存储空间和数值范围,适用于不同类型的数值数据。 - **日期/时间**:存储日期和时间,占用8个字节。 - **货币**:专门用于存储货币数据,精确到小数点后四位,占用8个字节。 - **自动编号**:自增的唯一标识,不可更新,通常用作主键,占用4个字节。 - **是/否**:布尔类型,不允许Null值,占用1位。 - **OLE对象**:用于存储其他程序的对象,如图片或文档,受磁盘空间限制,最大可存储1GB。 - **超链接**:存储超链接地址,最大64,000个字符。 - **查阅向导**:与参照完整性相关,大小与所关联主键相同,通常4个字节。 3. **主键** - 主键是用于唯一标识表中每条记录的字段,它必须是唯一的且不能为Null。 - 不允许作为主键的数据类型包括:备注、超链接、是/否和OLE对象,因为它们不能保证唯一性或不适合用于排序和分组。 - 自动编号字段通常被用作主键,因为它是唯一的且自动递增,但一个表只能有一个自动编号字段。 4. **关系** - 数据库中的多个表可以通过建立关系来关联,这使得不同表的数据可以相互引用,形成数据的一致性和完整性。 - 关系可以基于主键和外键,外键是另一张表的主键的复制品,用于连接两个表。 5. **注意事项** - 虽然文本和备注字段可以包含数字,但它们不能进行数学计算。 - OLE对象和超链接字段不适用于主键或分组依据,因为它们的大小和内容可能变化。 - 设计表时应考虑数据类型对存储空间的影响,以及数据的检索和处理效率。 Access中的表和关系设计涉及到数据类型的选择、主键的定义以及表间关系的建立,这些都是构建高效、结构化的数据库系统的基础。在设计数据库时,理解这些概念并正确应用它们是至关重要的。

请分析以下sql语句:create database ebookshopping; use ebookshopping; CREATE TABLE `admin` ( `adminid` varchar(255) NOT NULL, `username` varchar(255) DEFAULT NULL, `password` varchar(255) DEFAULT NULL, `realname` varchar(255) DEFAULT NULL, `contact` varchar(255) DEFAULT NULL, `addtime` varchar(255) DEFAULT NULL, PRIMARY KEY (`adminid`) ) ; CREATE TABLE `article` ( `articleid` varchar(255) NOT NULL, `title` varchar(255) DEFAULT NULL, `image` varchar(255) DEFAULT NULL, `contents` text, `addtime` varchar(255) DEFAULT NULL, `hits` varchar(255) DEFAULT NULL, PRIMARY KEY (`articleid`) ) ; CREATE TABLE `book` ( `bookid` varchar(255) NOT NULL, `bookname` varchar(255) DEFAULT NULL, `image` varchar(255) DEFAULT NULL, `cateid` varchar(255) DEFAULT NULL, `price` varchar(255) DEFAULT NULL, `recommend` varchar(255) DEFAULT NULL, `hits` varchar(255) DEFAULT NULL, `sellnum` varchar(255) DEFAULT NULL, `contents` text, PRIMARY KEY (`bookid`) ) ; CREATE TABLE `cart` ( `cartid` varchar(255) NOT NULL, `usersid` varchar(255) DEFAULT NULL, `bookid` varchar(255) DEFAULT NULL, `num` varchar(255) DEFAULT NULL, `price` varchar(255) DEFAULT NULL, PRIMARY KEY (`cartid`) ) ; CREATE TABLE `cate` ( `cateid` varchar(255) NOT NULL, `catename` varchar(255) DEFAULT NULL, `memo` varchar(255) DEFAULT NULL, `addtime` varchar(255) DEFAULT NULL, PRIMARY KEY (`cateid`) ) ; CREATE TABLE `details` ( `detailsid` varchar(255) NOT NULL, `ordercode` varchar(255) DEFAULT NULL, `bookid` varchar(255) DEFAULT NULL, `num` varchar(255) DEFAULT NULL, `price` varchar(255) DEFAULT NULL, `receivername` varchar(255) DEFAULT NULL, `receiverphone` varchar(255) DEFAULT NULL, `address` varchar(255) DEFAULT NULL, PRIMARY KEY (`detailsid`) ) ; CREATE TABLE `orders` ( `ordersid` varchar(255) NOT NULL, `ordercode` varchar(255) DEFAULT NULL, `usersid` varchar(255) DEFAULT NULL, `total` varchar(255) DEFAULT NULL, `status` varchar(255) DEFAULT NULL, `addtime` varchar(255) DEFAULT NULL, PRIMARY KEY (`ordersid`) ) ; CREATE TABLE `topic` ( `topicid` varchar(255) NOT NULL, `usersid` varchar(255) DEFAULT NULL, `filmid` varchar(255) DEFAULT NULL, `num` varchar(255) DEFAULT NULL, `contents` varchar(255) DEFAULT NULL, `addtime` varchar(255) DEFAULT NULL, PRIMARY KEY (`topicid`) ) ; CREATE TABLE `users` ( `usersid` varchar(255) NOT NULL, `username` varchar(255) DEFAULT NULL, `password` varchar(255) DEFAULT NULL, `realname` varchar(255) DEFAULT NULL, `sex` varchar(255) DEFAULT NULL, `birthday` varchar(255) DEFAULT NULL, `contact` varchar(255) DEFAULT NULL, `regdate` varchar(255) DEFAULT NULL, PRIMARY KEY (`usersid`) ) ;

2023-02-06 上传

使用映射算法将 ER 架构映射到关系数据库架构。使用以下表示法表示生成的关系数据库架构:PK 表示主键,AK 表示备用键,FK 表示外键,并带有指向相应表(主键)的箭头 Book Entity (Strong) - Title (single valued, simple string) - ISBN (single valued, simple alphanumeric string), pk - Edition (single valued, simple numeric) - Date of Publication (single valued, composite concatenation of characters and numbers) - Price (single valued, simple floating point number) - Book Description (single valued, simple string) Author Entity (Strong) - Author Name - Author_id, pk Publisher Entity (Strong) - Publisher id (single value, simple numeric), pk - Publisher Name (single valued, simple string) - Address (single valued, simple string) - together the publisher name and address could make an alternate key because no to publishers can have the same name and address Customer Entity (strong) - Customer_id (single valued, simple string), pk - Name (composite one value for first, middle and last name, simple string) - Mailing Address (single valued, simple string) - Credit Card Number and Expiration Date (single value, simple numeric sequence), alternate key - Phone Number (single value, simple alphanumeric string) - Email Address (single valued, simple alphanumeric string) Shipment (strong) - Date of Shipment ( single valued, composite of strings and numbers) - Tracking Number (single valued, simple alphanumeric string), pk - Date of Expected Delivery ( single valued, compoite of strings and numbers) Order (Strong) - Order Number (single valued, simple number), pk - Mailing Address (single value, simple string) - Method of Shipment (single value, simple string) - Date and Time of Order (when the order was placed) - Total Price of the Order (multivalue, composite) Promotion (strong entity type ) - Promotion id number, pk - Percentage Discount Points (single value, simple float) - Duration of Promotion (start date and end date) ( composite attributes like the dates above) Line Item(weak entity type) - Total price for each book that is ordered (single value, two place precision float) - Quantity of each item ordered Category (strong entity) - Category ID (single value, simple numeric), pk - Category Name (single value, simple string),

2023-06-11 上传