# 表结构设计
> 表结构的设计是软件开发的重要步骤,在设计之前,要对业务需求进行详细的调研和确认,把业务过程转化为业务模型对象,在业务模型中抽象出业务实体和业务实体间的关系(即业务流程)。
>
> 一般来讲,一个业务系统会由基础数据维护,业务处理和数据分析报表三个模块。
>
> 下面,我们举例对一个餐厅的点餐系统进行数据库的设计。
## 业务需求
* 会员注册,要求记录详尽的会员基础资料和相关消费资料;
* 连锁餐厅管理,记录各个餐厅的菜品结构,菜品会存在价格属性的规格(如份量等)和非价格属性的规格(如口味等);
* 记录每个菜品的成本;
* 记录客户的点餐过程数据,包括如入座时间、确认订单时间、埋单时间等,同时要维护店员的基本资料,对应关联到客户订单;
* 要求能对客户的下单菜品按制作档口进行分单,安排制作;
* 能按照业务数据分析客户的消费水平、菜品分析、客流分析等。
## 数据模型设计
![](/assets/016.png)