2009-09-26 44 views

Trả lời

3

Trừ khi bạn tạo mô hình cho bảng giữa hai bảng chính, tùy chọn duy nhất của bạn là sử dụng DAO (Cơ sở dữ liệu truy cập đối tượng) và chỉ định SQL với nó.

Hãy xem cách demo blog hoàn thành nhiệm vụ này.

0

bạn có thể thiết lập khả năng trong mysql level..by sẽ nhìn quan hệ dưới mỗi bảng trong phpmyadmin và cung cấp cần thiết MANY_MANY quan hệ condition..and sử dụng trong mô hình lớp quan hệ bên trong ..

1

Phần mở rộng sau không làm những gì bạn muốn ... Yii Framework - Extension: cadvancedbehavior

Điều quan trọng cần lưu ý: Trên mỗi bản cập nhật, tiện ích sẽ xóa tất cả các bản ghi trước đó và tạo bản ghi mới. Vì vậy, tôi sẽ không sử dụng nó khi bảng trung gian có chứa dữ liệu khác ngoài các khóa ngoại.

0

Câu hỏi quá phổ biến.

Thông thường các thành phần dữ liệu có MANY đến MANY mối quan hệ xuất hiện tuần tự và độc lập. Vì vậy, bạn chỉ cần thực hiện một hành động chèn sau một hành động khác.

Nếu mối quan hệ của bạn cần cập nhật phụ thuộc, bạn nên sử dụng SQL triggers ở cấp DataBase. Điều đó sẽ đảm bảo tính toàn vẹn của dữ liệu và đưa ra một sự tách biệt khá tốt trong logic nghiệp vụ của ứng dụng.

CREATE TRIGGER some_trigger 
    AFTER UPDATE ON some_table 
    ... 
END IF; 

Một cách tương tự là lồng ghép dữ liệu quan hệ trong một mô hình logic trên cấp độ PHP) và mô phỏng logic kích hoạt SQL trong đó.

+0

Trình kích hoạt rất khủng khiếp để bảo trì. Trước tiên, bạn có thể xem xét sử dụng cơ sở dữ liệu fks và cascading ... gây nên có thể thực sự là lựa chọn cuối cùng. – armandomiani

+1

Bạn phải nói đùa phải không? FKs tầng là kích hoạt thực sự! Nhưng bạn không thể sử dụng chúng "trên chèn". Hơn nữa, động cơ MyIsam của MySql không hỗ trợ FK, ví dụ: Vì sự quan tâm bảo trì, tôi không biết vấn đề gì để duy trì một thủ tục DB đặc biệt nếu nó là một tầm thường (và giống như một tầng FK) –

Các vấn đề liên quan