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

Các bảng cơ sở dữ liệu động trong django

Một câu hỏi thú vị, có thể được nhiều người quan tâm hơn.

Tạo một bảng cho mỗi người dùng là một cơn ác mộng bảo trì. Thay vào đó, bạn nên xác định một bảng duy nhất để chứa tất cả dữ liệu của người dùng và sau đó sử dụng khả năng của cơ sở dữ liệu để chỉ truy xuất những hàng liên quan đến người dùng quan tâm (sau khi kiểm tra quyền nếu cần thiết, vì không phải là ý kiến ​​hay nếu cấp cho bất kỳ người dùng nào không bị giới hạn truy cập vào dữ liệu của người dùng khác mà không có quyền cụ thể đã được thiết lập).

Việc áp dụng giải pháp được đề xuất của bạn yêu cầu bạn phải xây dựng các câu lệnh SQL có chứa tên bảng của người dùng có liên quan. Các truy vấn kế tiếp đến cơ sở dữ liệu hầu hết sẽ khác nhau và điều này sẽ làm chậm công việc vì mọi câu lệnh SQL phải được “chuẩn bị” (phải kiểm tra cú pháp, tên của bảng và cột phải được xác minh, quyền của người dùng yêu cầu để truy cập các tài nguyên được đặt tên phải được cấp phép, v.v.).

Bằng cách sử dụng một bảng (mô hình), các truy vấn giống nhau có thể được sử dụng lặp đi lặp lại, với các tham số được sử dụng để thay đổi các giá trị dữ liệu cụ thể (trong trường hợp này là tên của người dùng có dữ liệu đang được tìm kiếm). Công việc cơ sở dữ liệu của bạn sẽ tiến triển nhanh hơn, bạn sẽ chỉ cần một mô hình duy nhất để mô tả tất cả dữ liệu của người dùng và việc quản lý cơ sở dữ liệu sẽ không phải là một cơn ác mộng.

Một lợi thế nữa là Django (mà bạn có vẻ đang sử dụng) có mô hình quyền dựa trên người dùng mở rộng và có thể dễ dàng được sử dụng để xác thực đăng nhập của người dùng (một khi bạn biết cách). Những ưu điểm này rất hấp dẫn, tôi hy vọng bạn sẽ rút lui khỏi quan điểm lạc giáo của mình và quyết định bạn có thể thoát khỏi một bảng duy nhất (và, nếu bạn định sử dụng thông tin đăng nhập Django tiêu chuẩn, mối quan hệ với Mô hình người dùng đóng vai trò trung tâm của bất kỳ Django nào dự án).

Vui lòng đặt thêm câu hỏi khi bạn tiếp tục. Có vẻ như bạn chưa quen với công việc cơ sở dữ liệu, và vì vậy tôi đã cố gắng trình bày một mức độ chi tiết thích hợp. Có rất nhiều cạm bẫy như vậy nếu bạn không thể tiếp cận những lời khuyên có thể hiểu được. Mọi người trên SO sẽ giúp bạ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. Không có hoạt động nào được phép sau khi câu lệnh đóng

  2. Mục đích của SQLAlchemy trên MySQLdb

  3. Cách sử dụng các ký tự đại diện tiền tố như '* abc' với đối sánh

  4. Chọn dữ liệu từ bảng hiển thị Truy vấn MySQL

  5. Kết nối với MySQL gây ra lỗi Không tìm thấy tên nguồn dữ liệu và không có trình điều khiển mặc định nào được chỉ định