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

Lập mô hình cấu trúc dữ liệu cơ bản để quản lý người dùng, chủ đề và bài đăng

Diễn đàn thảo luận trực tuyến là một trang web nơi mọi người có thể tổ chức cuộc trò chuyện dưới dạng tin nhắn đã đăng . Diễn đàn thảo luận cho phép các cuộc trò chuyện diễn ra khi mọi người không trực tuyến và các tin nhắn có thể được lưu trữ tạm thời. Ngoài ra, tùy thuộc vào thiết lập diễn đàn, một thông báo có thể cần được người kiểm duyệt phê duyệt trước khi hiển thị cho những người dùng khác. Các diễn đàn có một tập hợp các thuật ngữ cụ thể, ví dụ, một cuộc trò chuyện đơn lẻ thường được gọi là “một chuỗi”. Chủ đề có thể được trả lời bởi nhiều người tùy thích. Hầu hết các diễn đàn yêu cầu người dùng đăng ký và sau đó đăng nhập để đăng bài viết. Tuy nhiên, trên hầu hết các diễn đàn, người dùng không cần phải đăng nhập để đọc các tin nhắn hiện có.

Đây là những yêu cầu chung cho một diễn đàn trang web , vì vậy hãy bắt đầu tạo mô hình cơ sở dữ liệu bắt đầu với thiết lập diễn đàn cơ bản mà chúng tôi có thể mở rộng sau này.

Thực thể

Như đã đề cập trước đây, mọi người tổ chức các cuộc trò chuyện dưới dạng các tin nhắn đã đăng được nhóm lại trong các cuộc trò chuyện. Vì vậy, cơ sở dữ liệu cần hỗ trợ thông tin về người hoặc người dùng , cuộc hội thoại hoặc chủ đề tin nhắn hoặc bài đăng .

Đối với diễn đàn trực tuyến, người dùng sẽ cần được tạo - có thể cần cho phép người dùng chỉnh sửa chi tiết của họ sau khi họ đã được tạo, nhưng có lẽ không cần cho phép xóa người dùng. Người dùng sẽ tạo các cuộc trò chuyện hoặc chuỗi, nói chung bằng cách đăng một thông báo đầu tiên lên diễn đàn, thay vì tạo một cuộc trò chuyện một cách rõ ràng, nhưng có thể cần hỗ trợ cả hai khả năng. Chủ đề sẽ chứa các bài đăng do người dùng tạo.

Chức năng

Đăng tin nhắn là chức năng chính của diễn đàn trực tuyến . Người dùng có thể chỉnh sửa tin nhắn sau khi chúng đã được đăng không? Người dùng có thể xóa tin nhắn sau khi đăng không? Câu trả lời cho cả hai có lẽ là có.

Mối quan hệ

Các bài đăng được liên kết với các chủ đề và các bài đăng được tạo bởi người dùng, vì vậy sẽ có một mối quan hệ xác định giữa người dùng và bài viết. Chủ đề do người dùng tạo nên bạn nên lưu trữ mối quan hệ ở đó (ví dụ:nếu người dùng bị cấm tham gia diễn đàn, bạn có thể muốn xóa tất cả các chủ đề và bài đăng mà người dùng đó đã tạo).

Bây giờ bạn đã biết các thực thể các mối quan hệ , bạn đã sẵn sàng xây dựng một mô hình cơ sở dữ liệu và việc đó sẽ chỉ mất vài phút. Đây là nơi mà các công cụ có ích.

Mô hình cơ sở dữ liệu

Hãy xem Vertabelo để tiếp tục diễn đàn thảo luận trực tuyến.

Tạo mô hình cho diễn đàn trực tuyến và bắt đầu thêm các thực thể đại diện cho người dùng, chủ đề và bài đăng. Vertabelo sẽ nhắc bạn rằng bạn cần xác định các khóa chính cho mỗi bảng; Tôi khuyên bạn nên sử dụng id vì điều đó sẽ mang lại cho bạn khả năng linh hoạt hơn (và sẽ không ràng buộc bạn với tên của người dùng làm khóa chính hoặc các cạm bẫy khác). Tiếp theo, thêm các mối quan hệ mà chúng tôi đã mô tả trước đây. Tôi đã thêm mật khẩu (ở dạng băm) để người dùng kiểm soát việc đăng nhập của người dùng.

Bây giờ, bạn sẽ kết thúc với một cái gì đó giống như sau:




Bạn sẽ thấy rằng có các dấu thời gian với ngày / giờ tạo mỗi hàng để thông tin đó có thể hiển thị trên diễn đàn (“Người dùng kể từ ngày 2 tháng 2 năm 2014”, “Ngày đăng:24 tháng 12 năm 2014”, v.v. ).

Nếu bạn sẽ có một kiểm duyệt diễn đàn thảo luận trực tuyến trong đó các bài viết phải được người kiểm duyệt phê duyệt trước khi chúng hiển thị với những người dùng khác, sau đó bạn nên thêm mục trạng thái đến các chủ đề và bài đăng để ứng dụng có thể quyết định xem các chủ đề và bài đăng liên quan đã được xem xét và phê duyệt hay chưa. Trạng thái cũng sẽ cho phép những người dùng khác đánh dấu các chủ đề và bài đăng là spam hoặc không phù hợp.

Tôi hy vọng rằng bạn đã có thể bắt đầu suy nghĩ về các cải tiến. Ví dụ:nếu bạn cần thông tin chi tiết chính thức về người dùng, thay vì một trường “tên”, bạn có thể muốn tên, họ và tên người dùng hoặc biệt hiệu của họ. Và một bài đăng có thể có một chủ đề bổ sung cho nội dung, nhưng tôi nghĩ rằng chủ đề của bài đăng được liên kết trở lại chủ đề nên điều đó có thể không cần thiết.

Phần tiếp theo »

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm hiểu khái niệm cơ bản về ghi nhật ký Java

  2. Đánh giá sách:Benjamin Nevarez:Điều chỉnh &Tối ưu hóa Truy vấn

  3. Các phương pháp tiếp cận bảo mật trong mô hình hóa dữ liệu. Phần 3

  4. Truy xuất XMLA để phân tích cấu trúc khối lập phương

  5. Mẹo về hiệu suất XML