2013-07-10 3 views
0

Yii Framework에서 작은 POS 응용 프로그램을 수행 중입니다. 나는 내 데이터베이스를 이렇게 보았다. 이제 모델과 파트를위한 파트를 완성했습니다. 그러나 여기서 나는 그들 사이의 관계를 조금은 혼란스럽게 생각한다. 그래서 어떤 사람들은 모델에서 그들 사이의 관계가 무엇인지 친절하게 말해 줄 수 있습니까? 어떤 도움이나 제안이라도 대단히 감사 할 것입니다. 감사합니다 ...모델에서 Yii Framework 데이터베이스 관계

==================== 
     mspl_sales 
==================== 
id 
product_id 
store_id 
discount_id 
agent_id 
date 
price 
discount_percentage 


=================== 
mspl_requistitation 
=================== 
id 
store_id 
product_id 
agent_id 
date 
requisition_number 
procure_quantity 
balance_store_stock 
priority 



================== 
    mspl_product 
================== 
id 
product_name 
cost_price 
selling_price 



================== 
    mspl_store 
================= 
id 
store_name 
store_location 



================== 
    mspl_discount 
================== 
id 
discount_type 


================= 
mspl_agent 
=============== 
id 
user_name 
email_id 
agent_code 
authorization_password 
+0

MySQL에서 외래 키를 설정 한 다음 Gii를 실행하면 자동으로 생성됩니다. 당신은 관계를 만드는 방법이나 당신의 관계가 무엇인지 묻고 있습니까? – Pitchinnate

답변

0

Yii에는 여러 유형의 관계가 있습니다. 가장 일반적인은 다음과 같습니다

  • 한 많은
  • 하나 하나
  • 많은 지금까지 내가 당신을 볼 수있는 많은

에 만 일대 어쩌면보기 하나가 하나의 관계. Yii의 모델은 데이터베이스에 레코드로 저장되는 개체입니다.

데이터베이스에는 판매 테이블이 있습니다. 이 테이블에는 상점 ID가 있으므로 판매에는 상점이 하나 있고 상점에는 판매가 많으므로 일대 다 관계입니다.

Yii 프레임 워크에서 이것은 다음과 같이 표시됩니다. 판매 모델에는 store_id 속성이 있지만 상점 모델과의 관계가 있으며 거기에이 상점 모델이 있습니다. 그래서 당신은 다음과 같이 저장하는 모델이 판매 모델 형성에 액세스 할 수 있습니다

$sale->store

를 거기에서 당신의 이름과 위치 같은 상점이 모든 속성에 액세스 할 수 있습니다.

$sale->store->location

또는

$store = $sale->store; 
$store->location 

반면에 상점 판매 모델의 배열을 가지고있다. 상점 모델은 1 개 판매있는 경우 그래서,이 같은 accesable 될 것이다 : 당신의 가게가 더 많은 매출을 가지고

$store->sales[0]

경우 그들을 통해 반복 할 수

foreach($store->sales as $sale){ 
    $sale->id = 0; 
    $sale->save(); 
    //your logic here 
} 

도움이 되었기를 바랍니다.

0

1 단계 : 상점 테이블에서 다른 필드를 추가 할 수 있습니다 (제품 ID가 외래 키로 필요함).

2 단계 : 그런 다음 저장소 테이블 goto 구조에서 외래 키 클릭 인덱스를 선택하고 마지막으로 클릭 한 관계 뷰 (구조 아래에 있음)에서 외래 키 테이블 이름과 ID를 선택하고 "계단식"으로 입력합니다.

3 단계 : 다시 모델을 재생하면 관계가 생성됩니다.