pary_daryayi 181 ارسال شده در شهریور 92 گزارش بازنشر ارسال شده در شهریور 92 سلام دوستان .من جداول دیتابیس رو همیشه به صورت ویزاردی در phpmyadmin میسازم و اگه دو جدول قرار باشه با هم ارتباط داشته باشن فقط از لحاظ مفهومی یک کلید در جدول دوم میزارم که موقع درج کلید اولی در فیلد کلید جدول دومی قرار بگیره.میخوام بدونم آیا برای این که یک کلید , بعنوان کلید خارجی تعریف بشه , همین کاری که من از لحاظ مفهومی میکنم , منطقیه ؟یا اینکه لازمه حتما با کد نویسی یا قسمت ویزاردی که جداول رو relation میکنن , این کار انجام بشه ؟ آخه phpmyadmin یه قسمتی داره به نام relation.از لحاظ کدنویسی هم که یک همچین چیزی لازمه ؟create table enroll( grade char(2), sid int not null, cid int not null, primary key(sid,cid), foreign key cid references courses on delete cascade, foreign key sid references students on delete cascade);--------------------------البته یادمه یه بار جایی خونده بودم که کلید خارجی رو باید index کنید و نوع جداولی که قراره با هم ارتباط داشته باشند رو innodb .ممنون میشم توضیح بدین. نقل قول لینک به ارسال
mehral 785 ارسال شده در شهریور 92 گزارش بازنشر ارسال شده در شهریور 92 الان مشکل شما وقتی که میخوای لایه های دیتابیس رو درست کنی یا موقع ارتیاط دیتابیس ها با همه ؟ 1 نقل قول لینک به ارسال
pary_daryayi 181 ارسال شده در شهریور 92 مالک گزارش بازنشر ارسال شده در شهریور 92 (ویرایش شده) من نحوه ی ایجاد جداولی که قراره با هم ارتباط داشته باشن برام سواله .با کدنویسیش مشکلی ندارم .میخوام بدونم آیا میشه این ارتباط رو , فقط از لحاظ مفهومی ایجاد کرد ؟یعنی cascade نکنیم و فقط وقتی رکوردی از parent حذف میشه بصورت منطقی بگیم رکوردش در child هم حذف بشه.کدوم اصولی تره ؟-----------------میخوام بدونم شما چطور این ارتباط ها رو تعیین میکنید ؟فیزیکی یا منطقی ؟ ویرایش شده شهریور 92 توسط pary_daryayi نقل قول لینک به ارسال
mehral 785 ارسال شده در شهریور 92 گزارش بازنشر ارسال شده در شهریور 92 نمیدونم پاسخی که دنبالشی اینه یا نه ولی خوب فرض کن دو تا جدول داریم (posts, users)حالا میخوایم این دوتا جدول رو با هم ارتباط میدیم و یه جدولی درست میکنیم که بشه ازش اطلاعاتی یکتایی در بیاریم 2 نقل قول لینک به ارسال
pary_daryayi 181 ارسال شده در شهریور 92 مالک گزارش بازنشر ارسال شده در شهریور 92 (ویرایش شده) من با این مفاهیم مشکلی ندارم .ببینید ما میتونیم برای ایجاد یک جدول در دیتابیس یا کدش رو در قسمت sql بنویسیم و یا بیایم بصورت ویزاردی یک جدول ایجاد کنیم . درسته ؟حالا میخوام ببینم برای ارتباط دو جدول هم آیا بصورت ویزاردی عمل میکنید یا کدش رو مینویسید .-------------------------ویرایش شد : با کدش مشکلی ندارم . قسمت ویزاردی اش رو مطمئن نبودم که پیدا کردم :1 - فرض کنیم جدول parent ما اسمش هست person . کلید اصلی اش هست ---- > id2 - یک جدول child هم داریم به نام Rregister که هر شخصی از person میتونه املاک مختلفی رو ثبت کنه . کلید خارجی اش هست --- > id_person از نوع index3 - هر دو جدول از نوع innodb هستن .4 - در قسمت structer جدول register ( جدول فرزند) , تنظیمات مربوطه رو در قسمت relation view انجام میدیم . طبق شکل 15 - نتیجه ی این ارتباط رو در شکل دوم ببینید .( روی desiner در phpmyadmin باید کلیک کنید)6 - حالا اگر ما رکوردی رو از person حذف کنیم , از child هم رکوردی که بهش مربوط هست حذف میشه . ویرایش شده شهریور 92 توسط pary_daryayi 1 نقل قول لینک به ارسال
mehral 785 ارسال شده در شهریور 92 گزارش بازنشر ارسال شده در شهریور 92 تا حالا فرصت نشده از این خاصیت phpmyadmin استفاده کنم توی اکثر مواقع با کد کار می کنم ولی تو بعضی موارد از مدیریت دیتابیس (sequel pro) استفاده می کنم . البته در مورد phpmyadmin نمی دونم ولی توی sequel pro هنگام برقراری ارتباط بین جدول ها میشه شرطی برای آپدیت و حذف رکورد ها در این ارتباط تعریف کرد یا restricted و یا cascading. 2 نقل قول لینک به ارسال
pary_daryayi 181 ارسال شده در شهریور 92 مالک گزارش بازنشر ارسال شده در شهریور 92 تو phpmyadmin هم میشه cascade رو ویزاردی انجام داد . تو عکس نشون دادم . نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .