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

Có thể sửa khóa ngoại trong Yii mà không cần thiết lập nó trong Cơ sở dữ liệu không?

Nếu tôi không nhầm, bạn không cần để mySql thực thi các mối quan hệ khóa ngoài để chúng vẫn hoạt động trong Yii. Việc thiết lập các ràng buộc FK trong mySql đảm bảo tính toàn vẹn của cơ sở dữ liệu phù hợp, nhưng tôi không nghĩ Yii thực sự sử dụng điều đó trong thời gian chạy.

Khi ban đầu chạy yiic (của Gii) để xây dựng dự án, tôi nghĩ nó nhìn vào DB để xây dựng các quan hệ phù hợp trong Mô hình, nhưng sau đó nó không sử dụng chúng.

Yii sau đó sử dụng kiến ​​thức này (từ yiic) về các mối quan hệ trong bảng để làm cho cuộc sống của bạn dễ dàng hơn bằng cách cung cấp các phương thức tắt để truy cập dữ liệu quan hệ và để đảm bảo bạn không vi phạm các ràng buộc mySql và mắc phải các lỗi SQL xấu xí, v.v. Nhưng bạn vẫn có thể sử dụng Quan hệ logic Yii không có các ràng buộc SQL cơ bản. Vấn đề duy nhất sẽ là nếu Yii nhầm lẫn và chỉ định FK không tồn tại hoặc thứ gì đó, cơ sở dữ liệu của bạn sẽ không gặp lỗi này (tính toàn vẹn dữ liệu của bạn sẽ dễ bị lỗi hơn).

Để liên kết sản phẩm của bạn với các phòng ban, chỉ cần đảm bảo bạn có trường Department_id trong Sản phẩm (nghe giống như bạn làm). Sau đó, thêm một quy tắc quan hệ như vậy vào Sản phẩm:

'department' => array(self::BELONGS_TO, 'Department', 'department_id'),

Và trong mô hình Phòng ban của bạn:

'products' => array(self::HAS_MANY, 'Product', 'department_id'),

Bây giờ bạn sẽ có thể sử dụng quan hệ như bình thường:

Bộ phận
$myProductModel->department; // returns the model of the Department referenced
$myDepartmentModel->products; // returns the models of all Products in the department

Chúc bạn may mắn và hãy cho tôi biết nếu tôi không có cơ sở và nó không phù hợp với bạn!




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. làm cách nào để mã hóa toàn bộ một cột

  2. Thay đổi vị trí cơ sở dữ liệu MySQL không hoạt động

  3. Làm cách nào để chèn mảng động vào cơ sở dữ liệu trong php?

  4. Nhập CSV utf8 với phpmyadmin

  5. phpmyadmin Không đặt được cookie phiên. Có thể bạn đang sử dụng HTTP thay vì HTTPS