13 điểm bởi GN⁺ 2024-07-25 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

Giới thiệu

Trong hướng dẫn thiết kế cơ sở dữ liệu này, chúng ta sẽ xem cách thiết kế các bảng cơ sở dữ liệu cho một dự án thực tế phức tạp. Chúng ta sẽ thiết kế một bản sao của Google Calendar. Loạt bài này giải thích cách tiếp cận trong cuốn sách "Database Design using Minimal Modeling". Trước tiên, chúng ta sẽ xây dựng một mô hình logic hoàn chỉnh mô tả dữ liệu lịch, sau đó tiến hành thiết kế bảng dựa trên mô hình logic.

Đối tượng độc giả

Mục tiêu của cuốn sách này là giúp bạn đi từ một ý tưởng còn mơ hồ đến định nghĩa hoàn chỉnh của các bảng cơ sở dữ liệu. Ba phần tư đầu của nội dung chỉ yêu cầu hiểu biết chung về cơ sở dữ liệu và giải thích về mô hình logic. Một phần tư cuối giải thích cách chuyển từ mô hình logic sang cấu trúc bảng vật lý.

Mục lục

  • Giới thiệu
  • Cách tiếp cận của cuốn sách này
  • Mô tả vấn đề
  • Phần 1: Sự kiện cả ngày cơ bản
  • Phần 2: Sự kiện theo thời gian
  • Phần 3: Sự kiện cả ngày lặp lại
  • Phần 4: Kết xuất trang lịch
  • Phần 5: Kết xuất trang lịch cho sự kiện theo thời gian
  • Phần 6: Mô hình logic hoàn chỉnh cho đến thời điểm này
  • Phần 7: Tạo bảng SQL
  • Kết luận
  • Bước tiếp theo

Cách tiếp cận của cuốn sách này

Mọi người thường bắt đầu từ thiết kế bảng, nhưng ở đây chúng ta chọn một cách tiếp cận khác. Trước tiên, ta xây dựng mô hình logic và xác định các thuộc tính dữ liệu cũng như mối quan hệ giữa các thực thể. Khi mô hình logic đã được quyết định, ta mới thiết kế các bảng vật lý.

Mô tả vấn đề

Chúng ta sẽ triển khai các tính năng chính của Google Calendar. Dữ liệu liên quan đến người dùng sẽ được triển khai ở mức tối thiểu. Sự kiện có các thuộc tính như tiêu đề, mô tả, địa điểm, v.v. Phần phức tạp nhất là thời gian và ngày tháng.

Part 1: Sự kiện cả ngày cơ bản

Anchor

Trước tiên, cần xác định các anchor. Anchor là các thực thể, ví dụ như người dùng (User) và sự kiện (Event). Anchor xử lý ID và việc đếm.

Thuộc tính người dùng

Chúng ta sẽ mô hình hóa lượng dữ liệu tối thiểu về người dùng. Ví dụ như email.

Thuộc tính của sự kiện cả ngày

Cần lưu tên sự kiện, ngày bắt đầu và ngày kết thúc.

Liên kết

Cần quyết định nơi lưu thông tin về việc một người dùng cụ thể đã tạo một sự kiện cụ thể. Phần này được xử lý như một liên kết thay vì một thuộc tính.

Part 2: Sự kiện theo thời gian

Múi giờ

Múi giờ được sử dụng ở nhiều quốc gia và khu vực. Định nghĩa múi giờ đôi khi thay đổi. Chúng ta sẽ triển khai một mô hình tối thiểu liên quan đến múi giờ.

Thuộc tính múi giờ

Chúng ta sẽ lưu tên múi giờ mà con người có thể đọc được.

Thuộc tính của sự kiện theo thời gian

Chúng ta sẽ lưu tên sự kiện, thời gian bắt đầu và thời gian kết thúc. Sử dụng thời gian cục bộ.

Liên kết

Xác định liên kết giữa múi giờ và sự kiện theo thời gian.

Điểm tương đồng giữa sự kiện theo ngày và sự kiện theo thời gian

Chúng ta sẽ xem xét những điểm tương đồng giữa hai loại sự kiện. Mô hình hóa logic cho phép trì hoãn việc ra quyết định.

Part 3: Sự kiện cả ngày lặp lại

Thuộc tính #1, chu kỳ

Xác định thuộc tính về mức độ thường xuyên mà sự kiện lặp lại.

Thuộc tính #2, các thuộc tính đan xen

Xác định chu kỳ của sự kiện lặp lại.

Thuộc tính #3

Đối với sự kiện theo tháng, xác định xem nó lặp lại vào cùng một ngày hay cùng một thứ trong tuần.

Thứ trong tuần: micro-anchor

Quyết định nơi lưu thứ trong tuần. Giới thiệu một anchor mới.

Liên kết

Xác định liên kết giữa thứ trong tuần và sự kiện.

Kiểm tra mức độ hoàn tất

Để xác nhận việc mô hình hóa đã hoàn tất hay chưa, chúng ta sẽ xem lại các yêu cầu ban đầu.

Giới hạn lặp lại: các thuộc tính đan xen hơn nữa

Xác định thuộc tính về thời điểm sự kiện sẽ lặp lại cho đến khi nào.

Part 4: Kết xuất trang lịch

Cho đến lúc này, chúng ta đã bàn về phần ghi chép của lịch. Giờ đây cần hiển thị chế độ xem lịch tuần của người dùng.


Tóm tắt của GN⁺

Hướng dẫn này giải thích từng bước cách thiết kế một cơ sở dữ liệu phức tạp để cả người mới bắt đầu cũng có thể dễ hiểu. Bằng cách mô hình hóa các tính năng chính của Google Calendar, bài viết cung cấp một ví dụ hữu ích có thể áp dụng cho các dự án thực tế. Bài viết cũng giải thích cách mô hình hóa logic giúp tránh lỗi trong thiết kế cơ sở dữ liệu và dẫn tự nhiên sang thiết kế bảng vật lý. Một dự án có tính năng tương tự là Microsoft Outlook Calendar.

Chưa có bình luận nào.

Chưa có bình luận nào.