ارتباط جداولی که ارتباط چند به چند دارند

[rtl]

با سلام. بنده چند جدول دارم که با یک جدول دارای ارتباط چند به چند است. در این بین یک جدول واسط برای قراردادن id های مرتبط باهم به نام form_send را در نظر گفته ام. فیلد های این جداول به این صورت است:[/rtl]

[size="3"][color="#0000FF"]forms[/color][/size]

id

[size="3"][color="#0000FF"]form_send[/color][/size]

form_id

send_type

send_id

[size="3"][color="#0000FF"]internet[/color][/size]

id

[rtl]که جدول فرم با جدول اینترنت از طریق جدول form_send با هم دارای ارتباط چند به چند هستند. جدول form_send دارای فیلدی به نام send_type است که دارای سه مقدار ۱و۲و۳ که هر کدام تعیین کننده نوع ارسال که شامل اینترنت، آندروید و ایمیل که هرکدام دارای جدول جاگانه ای می باشد، میشه.

در نهایت سوال:

ارتباط این جداول با توجه به فیلد نوع ارسال و به صورت چند به چند چطوری باید پیاده سازی بشه؟[/rtl]

[right]در مدل یکی از دو جدول اصلی یک متد بساز تا مقادیر لازم را وارد جدول واسط کنن، این کارو بهتره با نوشتن کوئری به صورت دستی انجام بدی.

برای بروز کردن جدول واسط هم نیاز خواهی داشت ابتدا همه رابطه های مورد نظر را پاک کنی و دوباره مقادیرو انزرت کنی

احتمالا بهتره این متد را در مدل

forms

بنویسی تا وقتی یک رکورد ازش تولید میشه یک رابطه هم در جدول واسط با

internet

کنه

متد ایجاد رابطه ات شبیه اینه[/right]


public function assignInternet($send_Id, $sendType)

	{

		$command = Yii::app()->db->createCommand();

		$command->insert('form_send', array(

		'sendType'=>$sendType,

		'send_id'=>$send_Id,

		'form_id'=>$this->id,

		));

	}



[right]در کنترلر

formsController

هم شبیه این میتونی بنویسی[/right]


public function actionCreate()

	{

		$model=new forms;


		

		if(isset($_POST['Forms']))

		{

			$model->attributes=$_POST['Forms'];

			//load internet model here

			if($model->save())

			{

				$model->assignInternet($internetModel->id,$this->getSendTypeOption(email));