mysql - 問一個(gè)簡(jiǎn)單的數(shù)據(jù)表設(shè)計(jì)問題(多對(duì)一、一對(duì)多)?
問題描述
舉個(gè)栗子:現(xiàn)在有三張表:食材、灶具、食品
業(yè)務(wù)場(chǎng)景:選購(gòu)某些食材,通過某種灶具,做成了一些食品。(取蔥花、面粉->用平底鍋->烙了白面餅和蔥花餅)
用數(shù)據(jù)庫(kù)關(guān)系描述:用數(shù)據(jù)庫(kù)正常描述是這樣的:食材(n)->食品(1),食品(n)->灶具(1),看起來很簡(jiǎn)單,多對(duì)一、多對(duì)一。但是注意業(yè)務(wù)場(chǎng)景,是先有食材,再將食材放入灶具,然后烹制出多個(gè)食品。也就是說不會(huì)事先知道食材(n)->食品(1)這個(gè)關(guān)系
我的使用場(chǎng)景:在食品烹制過程中,會(huì)根據(jù)食材查詢?cè)罹撸瑫?huì)根據(jù)灶具查詢食品;在食品烹制結(jié)束,會(huì)根據(jù)食材查食品,也會(huì)根據(jù)食品查食材。也許大家也想到了,還存在一層關(guān)系食材(n)->灶具(1),那就有了我下面的問題
問題:我怎么建立這三張表的關(guān)系?是否將三張表都建立關(guān)聯(lián)關(guān)系,如下面所示:
食材表(例子有點(diǎn)不合適,把每個(gè)食材看做一份,用完就沒有了):
idnamegoods_idpan_id1面粉112蔥花113花生油23灶具表:
idname1平底鍋2蒸籠3炒鍋食品表:
idnamepan_id1蔥花餅12油條3第一次在這里提問,望大神指導(dǎo),謝謝!
問題解答
回答1:食品(n)->灶具(1)
對(duì)這個(gè)不是很理解,一個(gè)灶具可以烹飪多種食品?
另外食品會(huì)不會(huì)需要多個(gè)灶具加工的情況?
通過我的理解
食材表
字段sc_idname灶具表
字段zj_idname食品表
字段sp_idname食譜表
字段解釋id主鍵sp_id做這個(gè)食品step的第step步sc_id需要用到sc_id這個(gè)材料zj_id在zj_id里烹飪回答2:ps:數(shù)據(jù)表的設(shè)計(jì)就是一個(gè)實(shí)體一個(gè)表,然后在用關(guān)聯(lián)表建立實(shí)體直接的聯(lián)系! 你知道了這個(gè)概念,然后再看你現(xiàn)在的問題是不是簡(jiǎn)單了!廚具一個(gè)表,食材一個(gè)表,食品一個(gè)表,然后食譜表就是建立三個(gè)實(shí)體的關(guān)系表!手機(jī)打字真累……
相關(guān)文章:
1. java - 如何在Fragment中調(diào)用Activity的onNewIntent?2. python - (初學(xué)者)代碼運(yùn)行不起來,求指導(dǎo),謝謝!3. python的文件讀寫問題?4. mysql里的大表用mycat做水平拆分,是不是要先手動(dòng)分好,再配置mycat5. html5 - H5 SSE的本質(zhì)是什么?6. javascript - js 對(duì)中文進(jìn)行MD5加密和python結(jié)果不一樣。7. javascript - jquery hide()方法無效8. window下mysql中文亂碼怎么解決??9. python - 獲取到的數(shù)據(jù)生成新的mysql表10. javascript - h5上的手機(jī)號(hào)默認(rèn)沒有識(shí)別
