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

Thiết kế cơ sở dữ liệu quan hệ (MySQL)

trước khi trả lời câu hỏi của bạn ... tôi nghĩ rằng user_id không nên nằm trong bảng Tài năng ... ý tưởng chính ở đây là "đối với 1 tài năng, bạn có nhiều người dùng và đối với một người dùng bạn có nhiều tài năng" .. vì vậy mối quan hệ phải là NxN, bạn sẽ cần một bảng trung gian

xem: nhiều đến nhiều

bây giờ

nếu bạn muốn thực hiện một điều gì đó động (thêm hoặc xóa các chương trình con), bạn có thể sử dụng mối quan hệ đệ quy. Đó là một bảng có liên quan đến chính nó

TABLE TALENT
-------------
id  PK
label
parent_id PK FK (a foreign key to table Talent)

xem: liên kết đệ quy

nếu bạn đang sử dụng mô hình trước đây, có thể là một cơn ác mộng khi thực hiện các truy vấn, bởi vì bảng Tài năng của bạn hiện là CÂY có thể chứa nhiều cấp .. bạn có thể muốn giới hạn bản thân ở một số cấp nhất định mà bạn muốn trong Tôi đoán hai bảng của Talent là đủ .. như vậy thì các truy vấn của bạn sẽ dễ dàng hơn

khi sử dụng quan hệ đệ quy ... khóa ngoại phải có giá trị rỗng vì các tài năng cấp cao nhất sẽ không có parent_id ...

Chúc may mắn! :)

CHỈNH SỬA: ok .. tôi đã tạo mô hình .. để giải thích nó tốt hơn

Chỉnh sửa Mô hình thứ hai (có hình cây thông Noel =D) Lưu ý rằng mối quan hệ giữa Người mẫu &Tài năng và Diễn viên &Tài năng là mối quan hệ 1x1, có nhiều cách khác nhau để làm điều đó ( cùng một liên kết trên các nhận xét )

để tìm xem người dùng có tài năng hay không .. hãy tham gia ba bảng trên truy vấn =) hy vọng điều này sẽ giúp ích



  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ách nào để duy trì mối quan hệ db (pk / fk) trong trường hợp sau không

  2. sẽ hiển thị trạng thái bảng hiển thị các hàng chính xác trong bảng?

  3. THAM GIA truy vấn so với nhiều truy vấn

  4. tạo bảng mysql nếu nó không tồn tại

  5. Tương đương PDO của hàm mysql_real_escape_string là gì?