Re: [SQL] 資料庫設計上的問題

看板Database作者 (重出江湖)時間10年前 (2015/04/21 22:11), 10年前編輯推噓3(3012)
留言15則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《aoksc (重出江湖)》之銘言: : 標題: [SQL] 資料庫設計上的問題 : 時間: Mon Apr 20 23:18:56 2015 : : (針對 SQL 語言的問題,用這個標題。請用 Ctrl+Y 砍掉這行) : 資料庫名稱:MS-SQL : : 資料庫版本:2012 : : 內容/問題描述: : : 請問各位 : : 我目前要設計一個訂單系統 : : 資料庫架構如下http://imgur.com/ApWQjNY
: : 我的想法是菜單底下跟每個一個品項關聯 : : 而訂單跟每一家菜單編號相關連 : : 訂單明細則是訂單編號跟菜單品項編號相關連 : : 因為當有人開單後很多人都用同一張訂單點餐所以關聯訂單編號 : : 而每一張明細也紀錄相對應的品項編號 : : 不過當我要去建立關聯時都會出現 : : 「資料表的資料行與現有的主索引鍵或unique條件約束不相符」 : : 請問是我的設計的架構有錯嗎? : : 不好意思對SQL的相關知識還很粗淺 : : 希望各位不吝指教 : : 謝謝 : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.169.170.118 : ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1429543140.A.0BA.html : 推 GoalBased: 你可以先GOOGLE 04/20 23:50 : → GoalBased: 新手遇到問題直接把你的問題丟GOOGLE 04/20 23:50 : → GoalBased: 會比上來問還快還完整 04/20 23:50 : 推 a926: 建關聯的時候,資料表裡面不要有資料會比較好喔! 04/21 10:04 : → a926: 你這是因為裡面有資料了!他會去判斷關聯的完整性 04/21 10:04 謝謝兩位的回覆 我用這錯誤訊息上google找其實資料滿少的 而且我還是看不太懂到底他說的是什麼意思 只知道應該是索引鍵數量不同的問題 但奇怪我明明兩個欄位都列為主鍵了怎麼還會有不同? 最後還是去找北風資料庫這經典範例來看 還有經過多次實驗跟網路上的片段相關索引資訊 終於把這問題解決 我整理心得應該是因為兩個主鍵組合而成的本身就是一組索引 但我要去關聯的table並沒有「相同組合」的欄位 所以也就是我除了有主索引鍵之外 我還必須去設定一般的索引鍵 所以說等於我OrderDetail裡面一共有 「ItemNumber+OrderNumber」、「ItemNumber」、「OrderNumber」這三個索引鍵才對 而我之前一直誤以為所設的ItemNumber、OrderNumber兩個主鍵就是兩組索引 不曉得我以上敘述有無錯誤的地方呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.169.170.118 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1429625502.A.B02.html

04/21 22:19, , 1F
你兩篇的描述我都看不太懂,可不可以舉個實體例子
04/21 22:19, 1F

04/21 22:19, , 2F
你第一張圖看起來應該是錯的,關聯是這樣的,
04/21 22:19, 2F

04/21 22:20, , 3F
我有一個主鍵,要關聯的人會有一個外部鍵,
04/21 22:20, 3F

04/21 22:20, , 4F
我的主鍵和別人的外部鍵關聯
04/21 22:20, 4F

04/21 22:20, , 5F
其實你說你有抓北風了,直接看北風會比較易懂
04/21 22:20, 5F

04/21 22:21, , 6F
你可以看看北風裡面應該沒有類似你這種作法的
04/21 22:21, 6F

04/21 22:21, , 7F
但奇怪我明明兩個欄位都列為主鍵了怎麼還會有不同 <<
04/21 22:21, 7F

04/21 22:21, , 8F
這句話很奇怪= =
04/21 22:21, 8F

04/21 22:22, , 9F
建議先看網路資料或是買本入門書籍來K一下
04/21 22:22, 9F

04/22 12:04, , 10F
索引歸索引 PK歸PK 另外一般做關聯時只會講到PK FK
04/22 12:04, 10F

04/22 12:04, , 11F
不會提到索引吶
04/22 12:04, 11F

04/22 12:06, , 12F
為了怕有誤 我說的索引不是索引鍵這個詞
04/22 12:06, 12F
謝謝各位的回答 抱歉對資料庫的知識還淺薄沒深入研究過 所以有些東西說出來可能怪怪的 我是想設計一個點餐的系統 使用者可以建立一個店家基本資訊(ShopHead) 而店家的相關品項(有什麼餐點)關聯店家基本資訊 然後當使用者開單時有該店家的資訊(ShopNumber)跟該次訂單編號(OrderNumber) 之後其他使用者可以用這張訂單選擇他要點的餐點 OrderDetails包含關聯那張訂單跟選擇了哪個品項 簡單來說就是一個訂便當的系統 一個人開單訂購 其他人就選擇要訂什麼餐點大概的概念是這樣 http://imgur.com/jyXCWUY
我有看過北風資料庫但不確定我的環境是否跟他類似 所以不曉得各位覺得這樣的情境搭配這樣的資料庫合理嗎? 另外各位有沒有推薦資料庫設計相關的書呢? 謝謝 ※ 編輯: aoksc (118.169.167.32), 04/22/2015 23:27:33

04/23 00:20, , 13F
書我之前有推過
04/23 00:20, 13F

04/23 00:21, , 14F
ISBN:9789863120636
04/23 00:21, 14F

04/23 00:21, , 15F
ISBN:9789863120650
04/23 00:21, 15F
文章代碼(AID): #1LDbgUi2 (Database)
文章代碼(AID): #1LDbgUi2 (Database)