一、概述
網上購物店的數據模型,它主要模式有產品:product ,帳戶:Account,定單:Order。和產品相關的表有category ,product,item, inventory, supplier;和用戶相關表有的account ,signon ,profile;和定單相關的表有orders,orderstatus,lineitem ,他們之間的整體關系如下.
ERD圖
FK:Foreign Key
二、帳戶模型
帳戶模型,記錄者用戶的登錄名稱,密碼。以及個人信息如地址,性名,電話等,還有它在系統中的profile信息。表有Account 主鍵是userID,它記錄用戶的基本信息,如email,name等。Signon 表記錄者userID和password,Profile表記錄者用戶的登錄系統的系統設置。可以根據用戶的類型,顯示不同的登錄信息。
(1)account表
create table account (
userid varchar(80) not null,
email varchar(80) not null,
name varchar(80) not null,
status char(2) null,
addr1 varchar(80) not null,
addr2 varchar(40) null,
city varchar(80) not null,
state varchar(80) not null,
zip varchar(20) not null,
country varchar(20) not null,
phone varchar(80) not null,
constraint pk_account primary key (userid)
)
說明:primary key是userID,它記錄帳戶的基本信息。
(2)Signon 表
create table signon (
username varchar(25) not null,
password varchar(25) not null,
constraint pk_signon primary key (username)
)
說明:記錄登錄名和密碼。
(3)Profile表
create table profile (
userid varchar(80) not null,
langpref varchar(80) not null,
favcategory varchar(30),
mylistopt int,
banneropt int,
constraint pk_profile primary key (userid)
)
說明:用戶的登錄信息,方便個性化定制。
(4)Bannerdata 表
create table bannerdata (
favcategory varchar(80) not null,
bannername varchar(255) null,
constraint pk_bannerdata primary key (favcategory)
)
說明:記錄不同的登錄信息。
三、產品模型
產品的模型主要有分類,它是產品的大類。表category 就是記錄分類名稱,描述信息。Product
記錄每個產品的基本信息,包括產品名稱,和產品的描述。它是一對多的關系。Supplier 表
記錄產品的提供者信息,包括提供者的名稱,地址,狀態等。Item 記錄產品的提供者,產
品ID,價格,狀態。Inventory 表記錄產品的數量。關系如下:
(1) category表
create table category (
catid char(10) not null,
name varchar(80) null,
descn varchar(255) null,
constraint pk_category primary key (catid)
)
(2)product表
create table product (
productid char(10) not null,
category char(10) not null,
name varchar(80) null,
descn varchar(255) null,
constraint pk_product primary key (productid),
constraint fk_product_1 foreign key (category)
references category (catid)
)
(3) item表
create table item (
itemid char(10) not null,
productid char(10) not null,
listprice decimal(10,2) null,.unitcost decimal(10,2) null,
supplier int null,
status char(2) null,
attr1 varchar(80) null,
attr2 varchar(80) null,
attr3 varchar(80) null,
attr4 varchar(80) null,
attr5 varchar(80) null,
constraint pk_item primary key (itemid),
constraint fk_item_1 foreign key (productid)
references product (productid),
constraint fk_item_2 foreign key (supplier)
references supplier (suppid)
)
(4) inventory 表
create table inventory (
itemid char(10) not null,
qty int not null
)
(5)supplier表
create table inventory (
suppid int not null
name varchar(80)
status char(2)
attr1 varchar(80)
attr2 varchar(80)
city varchar(80)
state varchar(80)
zip char(6)
phone varchar(80)
constraint pk_supplier primary key (suppid),
)
四、定單模型
定單記錄用戶的選擇產品信息,數量,表主要有Orders,記錄用戶的地址,帳戶信息,總金
額。Orderstatus 記錄定單狀態。Lineitem 記錄定單中的產品數量,單位價格,產品ID。
(1)orders表
create table orders (
orderid int not null,
userid varchar(80) not null,
orderdate date not null,
shipaddr1 varchar(80) not null,
shipaddr2 varchar(80) null,
shipcity varchar(80) not null,
shipstate varchar(80) not null,
shipzip varchar(20) not null,
shipcountry varchar(20) not null,
billaddr1 varchar(80) not null,
billaddr2 varchar(80) null,
billcity varchar(80) not null,
billstate varchar(80) not null,
billzip varchar(20) not null,
billcountry varchar(20) not null,
courier varchar(80) not null,
totalprice number(10,2) not null,
billtoname varchar(80) not null,
shiptoname varchar(80) not null,
creditcard varchar(80) not null,
exprdate char(7) not null,
cardtype varchar(80) not null,
locale varchar(20) not null,
constraint pk_orders primary key (orderid),
constraint fk_orders_1 foreign key (userid)
references account (userid)
)
定單的信息。
(2)Orderstatus表
create table orderstatus (
orderid int not null,
linenum int not null,
timestamp date not null,
status char(2) not null,
constraint pk_orderstatus primary key (orderid, linenum),
constraint fk_orderstatus_1 foreign key (orderid)
references orders (orderid)
)
定單中的產品狀態
(3)lineitem表
create table lineitem (
orderid int not null,
linenum int not null,
itemid char(10) not null,
quantity int not null,
unitprice number(10,2) not null,
constraint pk_lineitem primary key (orderid, linenum),
constraint fk_lineitem_1 foreign key (orderid)
references orders (orderid)
)