购物网站数据库设计

购物网站数据库设计,第1张

一、概述

网上购物店的数据模型,主要模式有产品:product ,帐户:Account,定单:Order。和产品相关的表有category ,product,item, inventory, supplier;和用户相关表有的account ,signon,profile;和定单相关的表有orders,orderstatus,lineitem ,整体关系如下

二、帐户模型

帐户模型,记录者用户的登录名称,密码。以及个人信息如地址,性名,电话等,还有它在系统中的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)

)

做动态网页首先要有服务器环境和编程工具,比如ASP首先要装IIS和DW,然后要设计数据库,然后就是编程,编程一般只要会那四个部分就差不多了,也就是检索,添加,删除,修改(select,insert,delete,update)

bear网有一个很好的教程叫做十天ASP,很好很有用的,不过要先免费注册登陆到会员软件页才能下载到。

1

理解您的数据在设计表之前,应明确您打算如何处理数据,还要了解随着时间的推移数据会发生什么样的变化

您所做的假设将会影响最终的设计

2

您需要什么样的数据设计应用程序时,关键要了解设计的最终结果,以便确保您准备好所有必需的数据并知道其来源

例如,报表的外观、每个数据的来源以及所需的所有数据是否都存在

对项目损失最大的莫过于在项目后期发现重要报表缺少数据

3

明确所需数据的类型和来源知道需要什么样的数据后,就必须确定数据的来源

数据是否从其他数据源中导入?数据是否需要清理或验证?用户是否需要输入数据?明确所需数据的类型和来源是数据库设计的第一步

4

您打算如何处理这些数据?用户是否需要编辑这些数据?如果需要,应如何显示数据以便于用户理解和编辑?有没有验证规则和相关的查找表?要求对编辑和删除保留备份的数据输入有没有相关联的审核问题?需要为用户显示哪些摘要信息?是否需要生成导出文件?了解这些信息后,就可以想象字段之间是如何相互关联的了

5数据之间如何相互关联?将数据分组放入相关字段(例如与客户相关的信息、与发票相关的信息等),每个字段组都代表要建立的表

然后考虑如何将这些表相互关联

例如,哪些表具有一对多关系(例如,一个客户可能持有多张发票)?哪些表具有一对一关系(这种情况下,通常会考虑将其组合到一个表中)?6

随着时间的推移数据会发生什么样的变化?设计表之后,常常会由于没有考虑时间的影响而导致以后出现严重问题

许多表设计在当时使用时效果非常好,但是,常常会因为用户修改数据、添加数据以及随时间的推移而崩溃

开发人员经常会发现需要重新设计表的结构来适应这些变化

表的结构发生变化时,所有相关的内容(查询、窗体、报表、代码等)也必须随之更新

理解并预测数据会随时间推移发生哪些变化,可以实现更好的设计,减少问题的发生

7

学习如何使用查询了解如何分析和管理数据同样很重要

您应该深刻理解查询的工作原理,理解如何使用查询在多个表之间链接数据,如何使用查询对数据进行分组和汇总,以及如何在不需要以规范化格式显示数据时使用交叉表查询

好的数据设计的最终目标就是要平衡两个需要:既要随着时间的推移有效地存储数据,又要轻松地检索和分析数据

理解查询的功能对正确设计表很有帮助

首先看性质了,分个人和企业

然后看你找的是什么人了,个人还是专门的公司

如果你是个人,去找个人做,那么1000以下就可以搞定,甚至更便宜

如果你是公司,去找个人做,那么3000左右还是比较合适的,只要不要太复杂

如果你是个人找公司做,那么就免了,费用和成果不成正比

如果你是公司去找公司做,那么3000-15000都是常事

数据库是用来存储数据的,其中分好多类,小型的有ACCESS,中型的有SQL SERVER,大型的有ORACLE,可根据自已的需要选用。 其重要性是显而易见的,没有数据库,只可以做静态的页面,无法实时更新或存储历史数据。数据库的设计在大型项目中尤为重要,好的数据库设计可以网站开发者更方便,让网站访问时间缩短好多倍,会让网站访问起来更快。

网站数据库,是选SQLServer还是Aess好,可能您会说:选MySQL好,不过现在只是讨论IISASP这种架构下的选择,不讨论ApachePHP的情况

如果您现在是在局域网中使用,而且软件的价格成本不是考虑的因素,那当然是用SQLServer好了,似乎这个问题没什么好讨论的

不过在互联网上就不太一样了,因为大部分做网站的人都是租用别人的虚拟主机,比较常见的组合是PHPMySQL或ASPACCESS或ASPSQLServer,下面就使用ACCESS及SQLServer做一个比较:成本使用SQLServer的虚拟主机报价一般是使用ACCESS的15至25倍

性能就数据库的处理能力和稳定性ACCESS和SQLServer当然是没得比的,但是有一点必须注意的是,在互联网上使用SQLServer和在局域中使用是大不一样的,如果你现在已经在用,请打开“SQL查询分析器”,连接上SQLServer服务器,执行“EXECsp_who”,你可能看到返回的行数有几百行,也就是说你所在SQLServer服务器正在处理几百个连接,然后再执行“selectcount()frommaster”,你可以看这个数字也是在几百以上,也就是说你所在SQLServer服务器上有好几百个数据库

相比之下,你使用的ACCESS文件只有你一个站点在使用,通过这些参数对比,就不能简单地认为使用SQLServer会比使用ACCESS获得更好的性能了

开发在开发能力方面ACCESS和SQLServer当然不在一个档次上,ACCESS没有表的外键和存储过程,可使用的SQL函数也远不如SQLServer,而且ACCESS的界面设计能力在做网站数据库时是用不上的,而且ACCESS没有提供象“SQL查询分析器”这样的自由SQL语句编写调试工具

维护在互联网上对数据库进行维护,SQLServer可以通过“企业管理器”(效果不好,经常连不上去)或“查询分析器”进行管理及维护,前提是SQLServer服务器开放了TCP/IP连接及你能直接连接到互联网或你的代理服务器开通了1433端口

而ACCESS一但把文件上传到网站之后,如果没有辅助工具或自已编写ASP脚本,是无法进行在线维护 *** 作的,唯一的方法是通过FTP把文件拿到本地进行离线 *** 作

从以上的比较可以看出,使69用ACCESS数据库在成本上是有优势,性能上也未必见差,但开发及上线后的维护能力不足,不过使用“网际数据库浏览器”可以弥补这方面的不足,这个软件可以在把ACCESS文件上传到网站后仍能在线地对ACCESS数据库进行查询、插入、更新及删除等 *** 作,这一点是其他基于ODBC连接的数据库开发辅助工具所没有的

可以参看discuz数据库表帖子,和帖子附件的设计,我的大概思路是这样的:

首先建立一个数据表"film"用来保存简短文字信息,其中包含:**发布时有名字,主演,简介,归属栏目,发布**的URL链接。在创建一个表(考虑到是小型网站,如果中型的话,可以选择10个,像discuz一样)"attachement",用来保存,上传截图,上传视频。这个表用一个外键与film表连接。中间在外键上加索引。

希望我的回答对你有帮助!

以上就是关于购物网站数据库设计全部的内容,包括:购物网站数据库设计、我们的毕业设计要做一个动态网页有数据库连接的,现在急需知道做动态网页都需要哪些软件谢谢了、网站制作数据库中的友情链接表如何设计,其中都应该有哪些字段等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9713471.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存