文章详情页
mysql - 问一个简单的数据表设计问题(多对一、一对多)?
浏览:187日期:2022-06-16 14:41:04
问题描述
举个栗子:现在有三张表:食材、灶具、食品
业务场景:选购某些食材,通过某种灶具,做成了一些食品。(取葱花、面粉->用平底锅->烙了白面饼和葱花饼)
用数据库关系描述:用数据库正常描述是这样的:食材(n)->食品(1),食品(n)->灶具(1),看起来很简单,多对一、多对一。但是注意业务场景,是先有食材,再将食材放入灶具,然后烹制出多个食品。也就是说不会事先知道食材(n)->食品(1)这个关系
我的使用场景:在食品烹制过程中,会根据食材查询灶具,会根据灶具查询食品;在食品烹制结束,会根据食材查食品,也会根据食品查食材。也许大家也想到了,还存在一层关系食材(n)->灶具(1),那就有了我下面的问题
问题:我怎么建立这三张表的关系?是否将三张表都建立关联关系,如下面所示:
食材表(例子有点不合适,把每个食材看做一份,用完就没有了):
idnamegoods_idpan_id1面粉112葱花113花生油23灶具表:
idname1平底锅2蒸笼3炒锅食品表:
idnamepan_id1葱花饼12油条3第一次在这里提问,望大神指导,谢谢!
问题解答
回答1:食品(n)->灶具(1)
对这个不是很理解,一个灶具可以烹饪多种食品?
另外食品会不会需要多个灶具加工的情况?
通过我的理解
食材表
字段sc_idname灶具表
字段zj_idname食品表
字段sp_idname食谱表
字段解释id主键sp_id做这个食品step的第step步sc_id需要用到sc_id这个材料zj_id在zj_id里烹饪回答2:ps:数据表的设计就是一个实体一个表,然后在用关联表建立实体直接的联系! 你知道了这个概念,然后再看你现在的问题是不是简单了!厨具一个表,食材一个表,食品一个表,然后食谱表就是建立三个实体的关系表!手机打字真累……
相关文章:
1. javascript - vue更改当前节点元素2. vue.js - vue 打包后 nginx 服务端API请求跨域问题无法解决。3. 如何解决Centos下Docker服务启动无响应,且输入docker命令无响应?4. position:absolute、float、display:inline-block 都能实现相同效果,区别是什么?5. angular.js - Web应用,单页面应用Cache问题6. Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?7. javascript - echart2.0 饼图不能自适应???8. angular.js - angular post的Content-Type被设置,导致不能上传图片,求助!!9. android - webview 自定义加载进度条10. css3 - 这个效果用 CSS 可以实现吗?border-image
排行榜

网公网安备