1.常见的四种简单的数据结构(对数据进行组织和表示的结构)
数组:最简单的数据结构,同一个数组只能存储相同的数据类型,可以理解成一个数组有从0到N个坑位,每个坑位又存有数据,通过调用数组名+坑位号就可以获得其中的数据
例如下图:A[0]可以找到a,A[1]可以找到b。
![](https://img.haomeiwen.com/i7394350/ffdfa73f80a40edb.png)
栈:类似一个只有一端开口的容器,先进后出
- 可以看到A是最先进来的,但是只能等C和B都出去之后才能可以轮到A出去。
队列:先进先出,就和排队一样,早来早走,队伍的两头都是开口。
![](https://img.haomeiwen.com/i7394350/f07009d62a539008.png)
树形结构:一个根节点可以衍生出下面很多子结点。
![](https://img.haomeiwen.com/i7394350/81454bb97dc242de.png)
产品设计案例分析
设计一个用户注册功能,第一步是设置用户的登录信息:包括账户和密码;第二步是填写用户的个人信息:爱好、性别、姓名等;其中涉及的数据结构如下:
栈结构:利用栈结构实现页面的跳转,只有完成第一步设置完成,才可以进入到第二部的个人信息设置。
数组结构:一系列个人信息构成了一个字符型的数组结构。
树状结构:微信首页底下有四个模块,这是由一个根节点控制的四个子节点,可以相互切换,同时每个子节点还有很多子节点。
2. 数据库基础
数据库定义:数据库运行在服务器中,我们可以对其进行增、删、改、查等工作,目前主要有两种数据库:关系型数据库和非关系数据库,前者运用更广泛,MYSQL就是其中之一
关系型数据库:数据库中有不同的实体,实体之间可以产生某种联系,或者说某种关系,每一个实体都有一个唯一的ID来进行定位,叫做“主键”;常见的数据库有MYSQL, SQL SERVER,ORACLE
例如:人是一个实体在数据库中,其中有爱好、性别,职业等属性;但性别也是作为一个实体存在,有男女等属性;两个实体具有一定的联系;
这种关系可以是一对一,也可以是一对多,多对多;例如人的性别只能有一个,就是一对一的联系;
人可以有多种职业,职业是一个实体,两个实体发生了一对多的联系;
当然这种关系也可以是多对多的,比如商品和订单这两个实体,在数据库中,一个订单可以有多个商品,一个商品也可以存在于多个订单
数据库操作语言:SQL,我们利用这个语言编程和数据进行互动,进行增删改减等操作
非关系型数据库:常见有 MongoDB和CouchDB等
此种数据库只能实现一个简单的键值对应关系,通过调用某一个键,得到一个对应的值;例如通过输入peopleID可以得到001
数据储存和数据恢复
数据储存过程分为两步,第一在索引区建立索引,第二在把数据储存在数据区;删除只会先删除索引,数据并不会立刻被删除,所以恢复索引关系即可回复数据
互联网产品设计的删除一般都是假删除,先标记数据成为删除状态,用户恢复时标记为正常状态即可,当然超过一定时限会进行物理层面的真实删除
工作场景
当产品经理设计一个新功能时,工程师可能说这里有的字段数据库内不存在,或者这个功能导致了现有数据库结构的改变;这个时候产品经理应该考虑两个方面的问题
第一:新的设计应该调整数据库结构还是删除相关字段?
第二:考虑数据兼容性的问题,为了迎合新功能做出的改变会导致老功能受到何种影响?
3.产品经理须知的数据分类
技术视角的数据的分类:
结构化数据:按照固定的格式储存的数据,好比我们按照格子一个一个放数据;
非结构化数据:是对零散的数据进行集中化管理,好比在一个格子里放了很多东西
通过分析结构化数据,我们可以得到数据趋势,预判未来风险;比如说淘宝商品有一些固定属性是结构化数据,例如销量,我们通过过往销量就可以大致分析未来的销量
通过分析非结构化数据,我们可以进行一些行为分析和相关推荐;例如浏览记录是非结构化的数据,我们发现用户的浏览记录经常覆盖工科类书籍,那我们就可以推送更多的相关数据,提高关注度和成交率。
产品视角的数据分类
用户数据:用户相关的数据,如DAU/MAU、新增用户、留存率。
行为数据:用户使用产品产生的一些动作相关的数据,如PV、UV、转化率、访问时长等;
UV(UniqueView): 独立访问数,每一个独立的IP地址仅被记录一次
PV(PageView):页面访问数,一个用户的多次访问都会被记录
业务数据:实际产生的代表业务价值的数据,如 GMV、付费人数、付费转化率、付费频次等。
网友评论