ارسالها: 145
موضوعها: 70
تاریخ عضویت: خرداد 1394
اعتبار:
0
تشکرها: 15
6 بار تشکر شده در 6 پست
سلام دوستان
بعضی وقتها پروژه ها آدم رو مجبور می کنن که کلیدهای خارجی رو حذف کنیم و خودمون ارتباطات رو کنترل کنیم
خواستم بپرسم این مسئله روی performance چقدر تاثیر داره؟
ممنون
ارسالها: 3,701
موضوعها: 140
تاریخ عضویت: اردیبهشت 1394
اعتبار:
134
تشکرها: 195
3447 بار تشکر شده در 2120 پست
قطعاً تأثیر داره. بعید میدونم نشه با تحلیل درست و دقیق، شرایطی فراهم کرد که هم به نیازهای پروژه جواب داده بشه و هم از ارتباطها و کلیدهای خارجی به خوبی استفاده کنیم.
18-03-1394، 11:04 ق.ظ
(آخرین تغییر در ارسال: 18-03-1394، 11:21 ق.ظ توسط desatir7316.)
ارسالها: 145
موضوعها: 70
تاریخ عضویت: خرداد 1394
اعتبار:
0
تشکرها: 15
6 بار تشکر شده در 6 پست
چیزی که از پروپزال مشتری متوجه شدیم به این صورته:(حالا تا وقتی بیاد کامل توضیح بده نمی دونم چقدر تغییرات داره)
فرض کنید سه تا جدول A,B,C داریم
جدول B قراره با کلید خارجی به جدول A وصل باشه و جدول C می تونه ارتباطش رو از جدول A یا B بگیره( یعنی کلیدش معلوم نیست به کدوم جدوله)
شاید بهتر باشه توی جدول C دوتا فیلد کلید خارجی تعریف کنم که یکیش وصل به جدول اولی بشه و یکیش به جدول دومی و پر شدن و کش شدن اطلاعات و ... رو کنترل کنم؟
ارسالها: 3,701
موضوعها: 140
تاریخ عضویت: اردیبهشت 1394
اعتبار:
134
تشکرها: 195
3447 بار تشکر شده در 2120 پست
یک راهش همینه و ابداً استفاده از کلیدهای ترکیبی مثل اون چیزی که توی لاراول هست رو توصیه نمیکنم. میتونید چک کنید اگه یکی از فیلدها ست شده باشه، یکی دیگه حتماً باید Null باشه. حتی میتونید از جداول واسط برای ارتباط N به N استفاده کنید.
ارسالها: 3,701
موضوعها: 140
تاریخ عضویت: اردیبهشت 1394
اعتبار:
134
تشکرها: 195
3447 بار تشکر شده در 2120 پست
اینکه یک فیلد بگذارین برای اسم جدول و یک فیلد هم برای خود کلید که واقعاً کلید نیست و فقط عدد رکورد مربوطه توش هست. مثلاً فیلدهای foreign_id و foreign_table و مثلاً اگه اولی روی 5 بود و دومی روی a یعنی رکورد 5 از جدول a و اگه دومی روی b بود یعنی رکورد 5 از جدول b