[size=12px][color=#FF0000]在淘宝上开过店的都知道,只要注册淘宝账号,申请一个店铺就可以开店了,你们可以上传商品的信息,可是你们有没有想过,他的数据库是怎么设计的?
(1)分配商家权限之后就分一个数据库给你,每个商家的数据库是不同的,那么的商品信息自然保存在不同的表里,那么他的数据库服务器得有多少个数据库?
(2)分配商家权限之后,你商品信息跟别的商家的商品信息在一个表里面,只是通过商家的ID或者其他的标识进行区分,那么这要的数据库表中的记录得有多少,查询的速率怎么样?哪位对淘宝的数据库了解的,出来讨论一下[/size][/color]

解决方案 »

  1.   

    会不会是有一个表保存店铺的信息,如:商家的ID,名称,注册时间,是否可用等,而商家的商品信息都是放在商品信息表里面的,那这样的表中的记录是不是很乱呢或者说一个表中的记录是不是显得很多呢?这样的查询速率是不是很低。
    谁用php写过mysql的增量备份?
      

  2.   

    用户表
    字段:id,用户名,密码,权限码,用户组id..等等
    店铺表:id,所属用户id,店铺大小,店铺名...等等
    商品表:id,所属店铺id,商品参数
    当然,对于淘宝来说,不可能用一个表装所有店铺,
    都是分几万个店铺一个表,
    比如id在1-10000的在shop1表,
    id在10000-20000的在shop2表,
    这就是数据库表索引分段
    还有数据库分区,商品描述都是老长的几万字,因此原本达成三范式的数据库还要再拆,
    不会在商品表里,而是独立出来成为个product_intro表:
    id ,所属商品id ,描述字段。
    更海量的数据还要分库,分磁盘。。
      

  3.   

    我做过一个OJS系统,它的数据库设计是这样的,有关用户的表有四个, 用户表,session表,权限表,详细资料表,并且表不是常规设计,比如,用户表中的字段,id,user_name,user_value  然后你存储信息时一定要存成insert into user (user_name,user_value) values ('username','admin')当然我这只是一个例子,具体的存储方式 是用serialize 或数组来处理的。  淘宝的表模式我觉得和这种模式差不多。
      

  4.   

    +1,不可能只有这么几个表,包括图片简介报价用户评价等等这些东西可能都是通过商品id或用户id映射到其他表的,然后再作分表分区,然后索引查询
      

  5.   

    这个其实蛮简单的,就是多用户概念你随便下载个 php多用户博客系统 研究下 就知道了