Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Mô hình dữ liệu thư viện

Mô hình dữ liệu nào sẽ cho phép bạn thoải mái tìm kiếm sách và mượn chúng trong thư viện địa phương của bạn?

Bạn đã bao giờ đến thư viện và mượn sách chưa? Có lẽ điều đó dường như đã lỗi thời trong thế giới ngày nay của kiến ​​thức internet và sách điện tử. Nhưng tôi chắc rằng vẫn còn phần tương tự này trong bạn vẫn thích ngửi, sờ và đọc sách. Hoặc có thể bạn buộc phải sử dụng thư viện khi bạn không thể tìm thấy thứ gì đó trên internet! Yup, không phải tất cả mọi thứ đều trực tuyến.

Vậy, một mô hình dữ liệu sẽ tổ chức sách và cho mượn của thư viện như thế nào? Hãy đi sâu vào mô hình này và xem nó hoạt động như thế nào!

Mô hình dữ liệu

Tôi đã nghĩ đến các thư viện công cộng khi tạo mô hình dữ liệu này. Có một giả định rằng mọi thư viện trong mạng lưới thư viện công cộng đều sử dụng cùng một mô hình / hệ thống. Nó tập trung và cho phép các thành viên duyệt qua bộ sưu tập của mọi thư viện trong mạng. Ngoài ra, thành viên có thể mượn sách từ bất kỳ thư viện nào trong mạng lưới.

Mô hình dữ liệu thư viện bao gồm mười ba bảng được chia thành hai lĩnh vực chủ đề. Các lĩnh vực đó là:

  1. Books & Libraries
  2. Members & Loans



Chúng tôi sẽ đi qua từng lĩnh vực chủ đề riêng biệt và phân tích tất cả các chi tiết.

Sách và Thư viện

Khu vực chủ đề này lưu trữ thông tin về sách và thư viện. Nó bao gồm mười bảng:

  • author
  • authorship_role
  • literature_category
  • book
  • book_authorship
  • book_item
  • publishing_house
  • library
  • city
  • country

Bảng đầu tiên là author bàn. Nó liệt kê tất cả các tác giả (cộng với các chi tiết liên quan của họ) của những cuốn sách mà thư viện có trong bộ sưu tập của mình. Đối với mỗi tác giả, chúng tôi sẽ có:

  • id - Một ID duy nhất cho tác giả đó.
  • author_name - Tên tác giả.
  • author_surname - Họ của tác giả.
  • date_birth - Ngày sinh của tác giả.
  • date_death - Ngày mất của tác giả.

authorship_role bảng liệt kê tất cả các vai trò mà một tác giả có thể có, ví dụ:tác giả, đồng tác giả, v.v. Bảng này có các thuộc tính sau:

  • id - Một ID duy nhất cho mỗi vai trò.
  • role_name - Tên của vai trò đó, ví dụ:"Đồng tác giả". Đây là khóa thay thế của bảng.

Bảng literature_category liệt kê tất cả các danh mục sách, ví dụ:phim kinh dị, văn học Pháp, chủ nghĩa hiện thực Nga, triết học, v.v. Bảng chứa các thuộc tính sau:

  • id - Một ID duy nhất cho danh mục đó.
  • category_name - Tên của danh mục, ví dụ:"huyền bí". Đây là khóa thay thế của bảng.

Tiếp theo, chúng tôi có book bàn. Bảng này lưu trữ tất cả các chi tiết liên quan của mọi đầu sách mà thư viện có trong bộ sưu tập của nó. Xin lưu ý rằng đây không phải là bảng được sử dụng cho mọi cuốn sách như một mục. Đối với điều đó, chúng tôi sẽ sử dụng một bảng khác, cụ thể là book_item bàn. book bảng bao gồm các thuộc tính:

  • isbn - ID duy nhất cho mỗi tên sách, trong ngành xuất bản là Mã số sách tiêu chuẩn quốc tế (ISBN).
  • book_title - Tên sách.
  • literature_category_id - Tham khảo literature_category bảng.
  • publishing_house_id - Tham khảo publishing_house bảng.
  • year_published - Năm xuất bản cuốn sách.

Bảng tiếp theo trong mô hình của chúng tôi là book_authorship bàn. Đây là một bảng giao nhau sẽ được kết nối với book , authorauthorship_role những cái bàn. Nó chứa các thuộc tính sau:

  • book_id - Tham khảo book bảng.
  • author_id - Tham khảo author bảng.
  • authorship_role_id - Tham khảo authorship_role bảng.

Ba thuộc tính này cùng nhau tạo thành khóa chính tổng hợp của bảng. Khóa chính tổng hợp có nghĩa là bất kỳ sự kết hợp nào của cả ba thuộc tính phải là duy nhất; mỗi kết hợp chỉ có thể xảy ra một lần.

Bây giờ chúng ta hãy xem xét book_item mà chúng tôi đã đề cập trước đây là lưu trữ thông tin cho từng cuốn sách vật lý trong thư viện. Nó sẽ chứa các thông tin sau:

  • id - Một ID duy nhất cho mỗi cuốn sách dưới dạng một mục.
  • isbn - Tham khảo book bảng.
  • library_id - Tham khảo library bảng.

The publishing_house table is the next one in our model. It lists the publishers of all the books that the library has in its collection. The attributes in the table are as follows: bảng là cái tiếp theo trong mô hình của chúng tôi. Nó liệt kê các nhà xuất bản của tất cả các sách mà thư viện có trong bộ sưu tập của mình. Các thuộc tính trong bảng như sau:

  • id - Một ID duy nhất cho mỗi nhà xuất bản.
  • publishing_house_name - Tên nhà xuất bản (ví dụ:Penguin Books, McGraw-Hill, Simon &Schuster, v.v.).
  • city_id - Tham khảo city bàn. Kết nối này cũng sẽ cho phép chúng tôi xác định cả thành phố và quốc gia của nhà xuất bản. publishing_house_name - city_id cặp là khóa thay thế của bảng này.

Được rồi, hãy chuyển sang library bàn. Bảng này được tham chiếu trong book_item bảng, nơi nó xác định thư viện nơi chứa mỗi bản sao của một cuốn sách. Điều này là cần thiết vì có thể tìm thấy các tên sách giống nhau ở nhiều thư viện trong mạng (ví dụ:mỗi thư viện có thể có ít nhất một bản sao của Chúa tể của những chiếc nhẫn ). Vì vậy, chúng ta phải biết cuốn sách đó ở thư viện nào. Để đạt được điều đó, chúng tôi sẽ cần các thuộc tính sau:

  • id - Một ID duy nhất cho thư viện.
  • library_name - Tên của thư viện đó.
  • address - Địa chỉ của thư viện đó.
  • city_id - Tham khảo city bàn. library_name - city_id cặp là khóa thay thế của bảng này.

Bảng tiếp theo trong mô hình này là city bàn. Đó là danh sách đơn giản về các thành phố mà chúng tôi sẽ sử dụng để biết thông tin về nhà xuất bản, thư viện và thành viên thư viện. Các thuộc tính là:

  • id - Một ID duy nhất cho thành phố.
  • postal_code - Mã bưu điện của thành phố đó.
  • city_name - Tên thành phố đó.
  • country_id - Tham khảo country bảng.

Sau đó, chỉ còn lại một bảng trong chủ đề này:country bàn. Đây là danh sách tất cả các quốc gia nơi đặt thư viện và / hoặc nhà xuất bản sách của chúng tôi. Nó bao gồm các thuộc tính sau:

  • id - Một ID duy nhất cho mỗi quốc gia.
  • country_name - Tên đất nước. Đây là chìa khóa thay thế cho bảng.

Tiếp theo, hãy xem xét lĩnh vực chủ đề thứ hai.

Thành viên và Khoản vay

Mục đích của môn học này là quản lý thông tin về các thành viên thư viện và những cuốn sách họ mượn. Nó bao gồm ba bảng:

  • member
  • loaned_book
  • loan_status

Bây giờ hãy nói về các bảng.

Bảng đầu tiên trong khu vực này là member bàn. Nó chứa tất cả các thông tin liên quan về các thành viên thư viện. Các thuộc tính của nó như sau:

  • id - Một ID duy nhất cho mỗi thành viên.
  • name - Tên của thành viên.
  • surname - Họ của thành viên.
  • address - Địa chỉ của thành viên.
  • city_id - Tham khảo city bảng.
  • email_address - Địa chỉ email của thành viên.
  • phone_number - Số điện thoại của thành viên.

Bảng tiếp theo là loaned_book bàn. Nó lưu trữ thông tin về tất cả những cuốn sách đã từng được cho mượn. Bằng cách này, chúng tôi có thể theo dõi kho sách của thư viện và tình trạng của bất kỳ cuốn sách nào được cho mượn. Bảng này bao gồm các thuộc tính sau:

  • id - Một ID duy nhất cho mọi cuốn sách cho mượn.
  • book_item_id - Tham khảo book_item bảng.
  • member_id - Tham khảo member bảng.
  • date_loaned - Ngày cho mượn cuốn sách này.
  • date_due - Ngày sách này sẽ được trả lại.
  • date_returned - Ngày sách thực sự được trả lại thư viện; điều này có thể là NULL vì chúng tôi sẽ không biết ngày cho đến khi sách được trả lại.
  • overdue_fine - Phí trả chậm (nếu có) của thành viên, thường được tính dựa trên chênh lệch giữa date_returneddate_due . Điều này có thể là KHÔNG ĐỦ vì sách được trả lại đúng hạn sẽ không bị phạt.
  • loan_status_id - Tham khảo loan_status bảng.
  • ts - Dấu thời gian khi trạng thái khoản vay đó được nhập.

loan_status bảng là bảng cuối cùng trong mô hình dữ liệu của chúng tôi. Nó chỉ đơn giản là danh sách tất cả các trạng thái cho vay có thể có, ví dụ:hoạt động, quá hạn, bị trả lại, v.v. Bảng này sẽ bao gồm các thuộc tính sau:

  • id - Một ID duy nhất cho mọi trạng thái khoản vay.
  • status_name - Tên mô tả tình trạng khoản vay. Đây là chìa khóa thay thế cho bảng.

Vậy là xong - chúng ta đã xem qua tất cả các chi tiết về mô hình dữ liệu của mình!

Bạn nghĩ gì về Mô hình Dữ liệu Thư viện?

Chúng tôi đã đề cập đến các nguyên tắc chung trong mô hình này, vì vậy mô hình này nên có (với một vài chỉnh sửa) cho mọi thư viện. Bạn có biết bất kỳ thông tin cụ thể nào về thư viện mà chúng tôi đã bỏ qua không? Hoặc có thể bạn thấy mô hình hữu ích và dễ áp ​​dụng? Có tiếng nói của bạn trong phần bình luận.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các tính năng không được dùng nữa để đưa ra khỏi hộp công cụ của bạn - Phần 3

  2. 10 lý do hàng đầu tại sao bạn nên học SQL

  3. Mô hình dữ liệu nền tảng cho vay ngang hàng

  4. Tham số Sniffing Primer

  5. Cách cài đặt Apache Cassandra trên Ubuntu 20.10 / Ubuntu 20.04