一个餐厅 菜的账单数据库该怎么设计

一个餐厅 菜的账单数据库该怎么设计,第1张

遵循数据库设计的第三范式即可

餐厅表:餐厅编号 餐厅名称 餐厅地址 餐厅老板

菜系表:菜系id 菜系类型 菜系描述

菜单表:菜谱id,菜谱系列 ,菜谱特色

关联一下就可以了

首先来说对于这种场景有两种设计方法,这两种方法都能够满足扩展性要求

1. 把原有的横表转化为纵表存储属性,即

产品表:(product_id, product_name, product_class)

产品属性表:(product_id, property_id , property_name , property_value)

2. 保持原有横表设计思路,但是d性字段含义单独元数据表存储

产品表:(product_id, product_name, product_class, prop1, prop2, .... propn)

产品属性含义元数据表

(product_class , prop1_name ,prop2_name, ..... propn_name)

对于两种设计方法,个人理解为

a. 对于首页打开就必须要能够快速查询出来的属性,而且这些属性本身各类产品差异不大。而对于差异大的属性基本都是针对特定一个产品查询。可以采用方案1来做。

b. 首页显示产品列表时候就存在要显示出不同产品属性情况,采用方案2来做。当我们处理的是一个product list的时候,由于存在数据表本身的关联场景,用方案1会比麻烦,也影响性能。

表设计可以采取拆分表的方式

纵向拆分表:根据字段拆分为多个表,每个表都有关联字段,可以将他们关联起来

(例如:订单表,几个根据字段拆分的表中都有1个订单号字段)

横向拆分表:不知道你具体什么数据,假定其中有时间字段,根据时间来拆分

(例如:1年有12个月,1个月的数据放入一个表中)


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存