看板 Database 關於我們 聯絡資訊
(針對 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
king08: 兩個設計都對,一個業務邏輯,一個自增序號 10/03 09:42
kattte: 2較好, 如果幣別跟對應帳號要一直擴增 你的1就麻煩了 10/04 17:20
kattte: 好像不太對 你的公司id跟幣別還有對應的銀行與帳號全都塞 10/04 17:24
kattte: 在同一個table裡喔? 10/04 17:24
kattte: 我沒搞清楚就回答 請無視我 @@ 10/04 17:32
PttTime: 不知有無錯:PK(company_id, bank_no, bank_acct), dollar 10/06 00:33