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

Nhiều bảng có mối quan hệ từ một đến nhiều (Laravel)

Bạn nên sử dụng polymorphic các mối quan hệ cho điều này. Nó cho phép nhiều mô hình sử dụng một bảng duy nhất.

Hãy xem tài liệu tại đây

Trong trường hợp cụ thể của bạn, mỗi bảng của bạn sẽ tham chiếu đến một noteable_id và một noteable_type .

noteable_id sẽ chứa id của (A/B/C) mô hình.

noteable_type sẽ chứa tên chuỗi của mô hình (A/B/C) .

(A/B/C) các mô hình bây giờ sẽ nhận được một thuộc tính mới:

/**
 * (A/B/C) Model(s)
 */
public function notes()
{
    return $this->morphMany('App\Notes', 'noteable');
}

note mô hình sẽ bắt đầu các thuộc tính đa hình của nó dựa vào tên thuộc tính được sử dụng để xác định các loại và id polymorphic ids and types :

/**
 * Note Model
 */
public function noteable()
{
    return $this->morphTo();
}

Bây giờ bạn có thể chỉ cần gọi ->noteable trên (A/B/C) và tất cả chúng đều dùng chung 1 bảng mà không cần một bảng tổng hợp khác cho mỗi bảng.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Vô hiệu hóa rõ ràng bộ đệm truy vấn MySQL trong một số phần của chương trình

  2. vấn đề hiệu suất group_concat trong MySQL

  3. Mysql tiếng Đức đánh dấu tìm kiếm không nhạy cảm trong các tìm kiếm toàn văn

  4. Mysql:Làm thế nào để chọn các nhóm có các giá trị nhất định?

  5. MySQL CURRENT_TIMESTAMP dưới dạng DEFAULT