ฐานข้อมูลบัญชีธนาคาร

ฉันกำลังสร้างฐานข้อมูลสำหรับ 'ธนาคาร' และไม่แน่ใจว่าวิธีการแนบบัญชีกับลูกค้าของฉันมีประสิทธิภาพมากที่สุดหรือไม่ ต่อไปนี้เป็นกฎบางประการขององค์กร:

- บัญชีมี 2 ประเภท (กระแสรายวันและออมทรัพย์)

-แต่ละบัญชีมีช่องสำหรับ: ยอดคงเหลือ, วันที่เข้าถึงครั้งล่าสุด

-บัญชีกระแสรายวันมีเงินเบิกเกินบัญชี

-บัญชีออมทรัพย์มีอัตราดอกเบี้ย_เรท

-ลูกค้าสามารถมีบัญชีได้มากเท่าที่ต้องการ

- บัญชีสามารถ 'สมัคร' กับคนได้ไม่จำกัด

ฉันไม่แน่ใจว่าวิธีที่ดีที่สุดคือเพียงให้อัตราดอกเบี้ยและเงินเบิกเกินบัญชีในตารางบัญชีเป็นโมฆะหากเป็นประเภทบัญชีผิด

ขออภัยหากคำถามนี้ใส่ได้ไม่ดีนัก (ฉันทำลายความบริสุทธิ์ของ stackoverflow ที่นี่) นอกจากนี้ นี่คือลิงก์ไปยังไดอะแกรม ER ที่สร้างขึ้นจนถึงตอนนี้: https://drive.google.com/file/d/0BwKmjTsIbwP0SE9Xbk1ycnkyV0E/edit?usp=sharing

ขออภัยที่ลงภาพโดยตรงที่นี่ไม่ได้ เนื่องจากไม่มีตัวแทน...

ขอบคุณล่วงหน้า!


person user3665815    schedule 22.05.2014    source แหล่งที่มา
comment
นี่เป็นคำถามเกี่ยวกับการออกแบบมากกว่าคำถามเกี่ยวกับการเขียนโปรแกรม   -  person Hans Then    schedule 22.05.2014


คำตอบ (1)


คุณนำข้อมูลที่คุณได้รับมา และคุณทำให้เป็นมาตรฐานข้อมูลให้เป็นความสัมพันธ์ นั่นเป็นสาเหตุที่คุณใช้ฐานข้อมูลเชิงสัมพันธ์

เริ่มจากลูกค้ากันก่อน เราจะสร้างตารางลูกค้า โดยทั่วไป ชื่อตารางจะเป็นเอกพจน์

Customer
--------
Customer ID
Customer name
Customer address
...

ดังที่คุณเห็น ข้อมูลทั้งหมดในตารางลูกค้าเป็นเรื่องเกี่ยวกับลูกค้า

ต่อไป เราจะสร้างตารางบัญชี

Account
-------
Account ID
Account Type ID
Account balance
Account interest rate
Account overdraft
Account last access time stamp

ข้อมูลทั้งหมดในตารางบัญชีมาจากใบแจ้งความต้องการของคุณ อัตราดอกเบี้ยถูกกำหนดเป็นศูนย์สำหรับบัญชีที่ไม่มีดอกเบี้ย เงินเบิกเกินบัญชีจะถูกตั้งค่าเป็นศูนย์สำหรับบัญชีที่ไม่มีเงินเบิกเกินบัญชี

ต่อไป เราจะสร้างตารางประเภทบัญชี

Account Type
------------
Account Type ID
Account Type

ข้อมูลจะเป็น (0, กำลังตรวจสอบ) และ (1, การออม) ด้วยตารางประเภทบัญชี คุณสามารถเพิ่มประเภทบัญชีใหม่ได้อย่างง่ายดาย เช่น (2, หนังสือรับรองเงินฝาก)

ต่อไป แม้ว่าคุณจะไม่ได้พูดถึง แต่เราจะสร้างตารางธุรกรรม คุณจะต้องใช้สิ่งนี้เพื่อให้สามารถพิมพ์ใบแจ้งยอดรายเดือนได้

Transaction
-----------
Transaction ID
Transaction time stamp
Transaction amount
Account ID

ตกลง เราได้ตั้งค่าตารางชนิดเอนทิตีทั้งหมดสำหรับการธนาคารแล้ว ตอนนี้ เรามาตั้งค่าตารางความสัมพันธ์กัน

ลูกค้าและบัญชีมีความสัมพันธ์แบบกลุ่มต่อกลุ่ม ลูกค้าสามารถมีได้หลายบัญชี และบัญชีหนึ่งสามารถมีลูกค้าได้หลายราย

เรามาสร้างตารางบัญชีลูกค้ากันดีกว่า

Customer Account
----------------
Customer ID
Account ID
Customer Account creation time stamp

คีย์หลัก (การจัดกลุ่ม) คือ (รหัสลูกค้า รหัสบัญชี) คุณจะต้องมีดัชนีเฉพาะใน (รหัสบัญชี รหัสลูกค้า)

ฉันเชื่อว่าเราสร้างตารางเสร็จแล้ว

  • บัญชีมีประเภทบัญชี

  • ลูกค้าสามารถมีได้หลายบัญชี

  • บัญชีหนึ่งสามารถมีลูกค้าได้จำนวนมาก

  • บัญชีหนึ่งสามารถมีธุรกรรมได้มากมาย

  • ธุรกรรมถูกผ่านรายการไปยังบัญชีเดียว

person Gilbert Le Blanc    schedule 22.05.2014
comment
ในตารางธุรกรรม จำเป็นต้องมีการอ้างอิงของทั้งสองฝ่ายที่เกี่ยวข้องกับธุรกรรม คุณมีเพียงหนึ่งเดียว - person HIRA THAKUR; 19.02.2018
comment
จะสามารถปรับขนาดได้อย่างไรหากประเภทบัญชีใหม่จำเป็นต้องมีช่องพิเศษบางอย่างซึ่งเป็นเอกสิทธิ์ของประเภทบัญชีใหม่นี้ การมีตารางที่แตกต่างกันสำหรับประเภทบัญชีที่แตกต่างกันไม่ดีกว่าหรือ? หรือใช้ตารางรวมกับตารางหลักที่มีเขตข้อมูลทั่วไป ฉันกำลังดิ้นรนในการออกแบบโซลูชันดังกล่าวและคิดถึงโซลูชันที่เป็นไปได้ที่จะขยายขนาดได้ดี ทางออกของคุณก็เป็นทางออกที่ดีอยู่แล้ว - person bluelurker; 28.06.2021