分析Petshop4.0的数据库【转载网页】

来源:互联网 发布:淘宝申请退货时间 编辑:程序博客网 时间:2024/05/23 18:08

【转载】Petshop分析之数据库

本文源自于网友博:(烁星)>>>cnblogs.com/zuoguanglin/archive/2012/05/15/2501122.html

 

PetShop 使用了四个数据库,分别为:MSPetShop4 MSPetShop4Orders MSPetShop4ProfileMSPetShop4Services

一、MSPetShop4用来管理产品、分类等基本数据信息,其中共有六个表

  1.AspNet_SqlCacheTablesForChangeNotification:配合.net的缓存处理,不是基本数据表。(去除:技术类

  2.Category:产品分类表。这个分类主要对产品在大类别上进行分类,比如在petshop中,有鱼类,鸟类等。

    字段有 CategoryId :分类ID,主键;

       Name :类别名称;

       Descn:描述。

  3.Inventory:宠物的库存表。(去除:宠物信息里面可以包含这个属性

   字段有 ItemId:宠物的ID,主键;

       Qty:库存的数目。

  4.Item: 具体的宠物

   字段有 ItemId:宠物项ID,主键;

      ProductId:对应产品ID,外键;

      ListPrice:宠物价格;

      UnitCost:

      Supplier:供应商(int类型),外键;

      Status:状态;

      Name:宠物名字;

      Image:宠物所对应的图片地址。

   说明:每一种产品(product)都对应有一种或几种具体的Item。在这张表中ProductId为其对应的产品,并在这个字段上建立外键约束。在这张表里面,ItemId为主键,

ProductId、Supplier为外键,也就是他们的值是Product表和Supplier表中的值,建立了一个大的索引:ItemId+ ProductId + ListPrice + Name

  5.Product:产品表

   字段有 ProductId:产品ID,主键;

       CategoryId: 产品分类id,外键;

        Name:产品名字;

      Descn:描述;

      Image:此类产品对应的图片地址。

   说明:这个产品并不是最终的产品,而是一个抽象意义上的产品,比如说鱼,有很多种类的鱼,比如鲨鱼等等,对于一个宠物商店,鲨鱼这个种类有好几个不同的名字,那么摆在货架上的就是好几个不同的名字的。具体的每个名字的就要用item表来表示了。在这张表中,以产品ID为主键,同时建立了四个索引:

1.产品名称;

2.分类ID

3.产品名称+分类ID

4.产品ID+产品名称+分类ID。有关索引的相关知识,请查阅数据库方面的资料。

  6.Supplier:供应商表。!!!

  此张表意义不大,只是在这里标识每一种宠物的供应者是谁,在标准的petshop安装后,里面只有两条数据,那么现在我来介绍一下这张表里面的字段的意思。上图中标识主键的为供应商ID,以下分别为供应商名字,status里面的值为AC,我搞不太清楚代表什么意思,Addr1,Addr2想必大家一看就明白是什么意思了,city从字面意思也可以搞清楚,state是代表美国的哪一个州,zip为邮政编码,后面的是电话号码。

 根据上面的数据库表,petshop抽象出几个数据实体类。

让我们先来分析一下,上面的数据库中,一共有六张表,可以表示这么几个概念,分别是缓存,类别,产品(我不知道这么叫好不好),宠物信息,供应商,库存

可以做为数据实体的肯定要去除缓存,库存,因为缓存只是一个技术,库存则是宠物信息里面可以包含的一个属性,我认为,余下的都可以

抽象或是说映射。但是petshop中只对类别,产品,宠物信息进行了抽象实体没有供应商的具体类。为什么??

究其原因,可能是因为在petshop中,供应商并不是一个主要的矛盾,也就是说宠物商店和供应商没有太大关系,所以没有包含

 

二、 MSPetShop4Orders:用来存储订单明细、订单基本信息和订单状态的数据。

  1.LineItem:存储定单中购买商品的信息,例如:定单号,商品ID,单价,数量

  2.  Orders:用于存储商品定单详细信息,例如:定单号,用户ID,联系信息等

  3.OrderStatus:用于记录定单状态

 

三、MSPetShop4Profile主要存储账户基本信息、购物车信息和用户配置信息。

  1.Account:记录客户基本信息,例如:姓名,电子邮件地址,住址等。

  2.Cart:存储购物车和意象清单中的商品信息。

  3.Profiles:用于存储客户活动基本信息例如:用户名,是否匿名访问,上次登陆时间等

 

四、MSPetShop4Services: 存储成员资格,角色,用户配置,和应用程序等信息。

  1.aspnet_Applications 存储数据库所涉及应用程序有关信息。

       2.aspnet_Membership 存储与用户相关信息例如:用户登陆密码,创建时间。

 

       3.aspnet_Paths 存储应用程序和目录路径的对应关系数据。

 

       4.aspnet_PersonalizationAllUsers 存储针对所有用户的Web部件个性化设置信息。

 

       5.aspnet_PersonalizationPerUser 存储针对每个特定用户的Web部件个性化设置信息。

 

       6.aspnet_Profile 存储用户配置数据。

 

       7.aspnet_Roles 存储角色信息。

 

       8.aspnet_SchemaVersions 存储用户配置信息支持的模式。

 

       9.aspnet_Users 记录用户基本信息。

 

       10.aspnet_UsersInRoles 存储用户和角色的关系数据。

 

        11.aspnet_WebEvent_Events 存储Web事件相关信息。

**********************************************************************************************************************************************************

 通过将一个完整系统的数据按功能进行划分,各部分数据存储到独立的数据库服务器中,是一种典型的分布式数据库模式。

采用这种方式,不仅可以提高数据库以及应用的复用性,而且可以分散数据库服务器的压力,从而在某种程序上解决数据库瓶颈。

原创粉丝点击