Thứ Ba, 9 tháng 2, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 2 - Các bảng trong cơ sở dữ liệu The Coffee Merchant

James Perry, Richard Newmark


Chương 2
Cơ sở dữ liệu và hệ thống kế toán


Các bảng trong cơ sở dữ liệu The Coffee Merchant


Để hiểu làm thế nào thông tin kế toán có thể được tổ chức trong hệ cơ sở dữ liệu, hãy xét ví dụ. Một số bảng trong Ch02.accdb bao gồm dữ liệu hóa đơn khách hàng của The Coffee Merchant. Hình 2.6 trình bày lược đồ từng bảng trong phân hệ hóa đơn thuộc cơ sở dữ liệu The Coffee Merchant.

Hình 2.6. Lược đồ bảng trong phân hệ hóa đơn.

Khi các mẩu dữ liệu từ mỗi bảng được kết hợp đúng, bạn có thể tạo và in hóa đơn. Bảng tblCustomer chứa thông tin của từng khách hàng. Mỗi khách hàng được gán một khóa chính – là dãy số nguyên bất kỳ - để có thể nhận diện duy nhất khách hàng đó. Bảng hóa đơn, tblInvoice, chứa lịch sử các hóa đơn đã được The Coffee Merchant gửi đi. Mỗi dòng được nhận diện bằng khóa chính, InvoiceID, và nó chứa ngày xuất hóa đơn (InvoiceDate), ngày đặt hàng (OrderDate), mã số đơn mua hàng của khách hàng (CustomerPO), mã số khách hàng (CustomerID), hóa đơn này có phải trả thuế không (TaxStatusID), mã số nhân viên bán hàng (EmployeeID), và mã số nhà vận chuyển (ShipperID). Dĩ nhiên, hóa đơn có nhiều chi tiết hơn những thông tin lưu trong bảng hóa đơn tblInvoice, nhưng các chi tiết bổ sung đó (chẳng hạn địa chỉ khách hàng) được lưu trong tblCustomer, vốn liên kết với bảng hóa đơn qua thuộc tính CustID – là khóa chính trong tblCustomer và là khóa ngoại CustomerID trong tblInvoice. Hình 2.7 thể hiện góc nhìn bảng dữ liệu của một số dòng trong tblInvoice.

Hình 2.7. Các dòng ví dụ trong bảng hóa đơn, tblInvoice.

Các dòng hóa đơn chứa chi tiết từng mặt hàng mà khách hàng đặt mua. Các chi tiết này không lưu trong bảng hóa đơn. Thay vào đó, chúng được lưu trong hai bảng tblInvoiceLine tblInventory. Hai hình 2.8 và 2.9 thể hiện các dòng mẫu của hai bảng này. Bảng tblInvoiceLine thoạt tiên trông bất thường. Bảng chỉ chứa 5 thuộc tính: 2 trường tạo nên khóa chính phức hợp và 3 trường chứa thông tin mặt hàng trên hóa đơn. Các mục tin này bao gồm số lượng đặt mua, giá trên một đơn vị đã thỏa thuận (có thể thay đổi tùy thuộc khách hàng nào), và phần trăm giảm giá cho mặt hàng đó. Khóa chính phức hợp gồm nhiều thuộc tính. Trong bảng này, InvoiceID và InventoryID kết hợp lại để tạo nên khóa chính phức hợp. Hai thuộc tính này nhận diện hóa đơn nào và mặt hàng nào trong kho xuất hiện trên dòng hóa đơn đó. Bảng tblInventory chứa thông tin trà và cà phê của The Coffee Merchant. Chỉ một số trên hơn 150 mặt hàng lưu trong bảng kho hàng được thể hiện ở Hình 2.9. Khóa chính InventoryID nhận diện duy nhất một mặt hàng trong kho, và các đặc trưng khác về mặt hàng trong kho được lưu trong bảng tblInventory.

Hình 2.8. Các dòng trong bảng tblInvoiceLine.

Hình 2.9. Các dòng trong bảng kho hàng tblInventory.

Các bảng này không lưu giá mở rộng (extended price, bằng số lượng nhân với giá trên một đơn vị), tổng thành phần (subtotal), và những thông tin thường xuất hiện trong hóa đơn. Để nhận được các thông tin này, ta cho Access tính toán lúc in hóa đơn. Không nên lưu các giá trị tính toán vào bảng. Tóm lại, dữ liệu trong các bảng chứa mọi thông tin cần thiết để làm hóa đơn cho The Coffee Merchant.

Giờ đây bạn đã hiểu chi tiết các bảng trong cơ sở dữ liệu The Coffee Merchant, bạn có thể học về khái niệm chuẩn hóa. Ta sẽ dùng các bảng The Coffee Merchant để định nghĩa và giải thích lý do tại sao cần chuẩn hóa bảng.

Không có nhận xét nào:

Đăng nhận xét