[SQL ] 想問一下有關primary key設計的問題

看板Database作者 (s.k)時間10年前 (2015/10/02 23:16), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串1/1
(針對 SQL 語言的問題,用這個標題。請用 Ctrl+Y 砍掉這行) 資料庫名稱:SYBASE 資料庫版本:15.0 內容/問題描述: 因為沒有修過資料庫相關基礎課程,只在工作上使用, 最近碰到一個問題,想問一下各位先進的意見。 有一個table 結構大概長這樣 company_id char(7) Key dollar_code char(1) Key bank_no char(4) bank_acct char(20) 用途是紀錄各個公司的銀行帳戶,分台幣與外幣每個幣別各一個銀行帳戶, 收到一個修改需求,希望每個公司,每個幣別允許多一個銀行帳戶,當然 各幣別帳戶不可duplicate. 原有table結構不足,因此須修改。 先修改成這樣 Table schema1 company_id char(7) Key dollar_code char(1) Key seq_no int Key <--增加 bank_no char(4) bank_acct char(20) 最簡單的做法,增加一個seq_no,所以每公司,每幣別可指定多個銀行帳戶, 當然此結構有可能銀行帳戶會Duplicate, 但被要求修改成 Table schema2 company_id char(7) Key dollar_code char(1) Key bank_no char(4) Key bank_acct char(20) Key 每公司,每幣別同樣可指定多個銀行帳戶,也不會Duplicate, 但使用上就沒有那麼方便。 EX: 1.例如說每公司,每幣別如果可指定n個銀行帳戶,但table中每公司,每幣別資料可能不滿n個,使用SQL於Query時補足n筆就不太容易,大概只能使用Cursor硬寫。 2.使用SQL update時,須記住原本的bank_no與bank_acct才能update 但以上兩點使用Table schema1就很容易做到。 想問一下各位先進的想法,或是我有那些想法是錯誤的,還請各位指正。 或是有更好更方便的Table schema設計。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.13.182 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1443798994.A.95B.html

10/03 09:42, , 1F
兩個設計都對,一個業務邏輯,一個自增序號
10/03 09:42, 1F

10/04 17:20, , 2F
2較好, 如果幣別跟對應帳號要一直擴增 你的1就麻煩了
10/04 17:20, 2F

10/04 17:24, , 3F
好像不太對 你的公司id跟幣別還有對應的銀行與帳號全都塞
10/04 17:24, 3F

10/04 17:24, , 4F
在同一個table裡喔?
10/04 17:24, 4F

10/04 17:32, , 5F
我沒搞清楚就回答 請無視我 @@
10/04 17:32, 5F

10/06 00:33, , 6F
不知有無錯:PK(company_id, bank_no, bank_acct), dollar
10/06 00:33, 6F
文章代碼(AID): #1M3f_IbR (Database)