PDA

View Full Version : سوال: بهترین راه در ایجاد این جدول



Mori Bone
دوشنبه 18 فروردین 1393, 15:50 عصر
سلام

من یه دیتابیس دارم که توی یه جدول همه ی معلما ذخیره می شن.

حالا می خوام دانش آموزا رو ذخیره کنم. شما کنیم روش رو پیشنهاد می کنید؟

1-یک جدول دری کنم و دانش آموزان رو ذخیره کنم و برای هر دانش آموز یه فیلد به نام class بذارم و نام هر کلاس رو توش ذخیره کنم (مثلا: مرتضی،زندیه،کامپیوتر)"کامپیوتر" نام کلاس هس
2-برا هر کلاس یه جدول درس کنم و دانش آموزاش رو توش ذخیره کنم؟

*اینم بگم که هم تعداد کلاس ها زیاده و هم دانش آموزا

thacker
دوشنبه 18 فروردین 1393, 16:16 عصر
برای دانش آموزها یک جدول ایجاد کنید و برای کلاسها هم یک جدول...
آیدی کلاس مربوط به هر دانش آموز رو هم در فیلد کلاس مربوط به جدول دانش آموز درج کنید.

Beginner Programmer
دوشنبه 18 فروردین 1393, 16:31 عصر
برای دانش آموزها یک جدول ایجاد کنید و برای کلاسها هم یک جدول...
آیدی کلاس مربوط به هر دانش آموز رو هم در فیلد کلاس مربوط به جدول دانش آموز درج کنید.
آفرین منم میخواستم همین بگم که دوتا جدول رو ایجاد کن به این دلیل که هر دیتابیس استانداردی نیاز به یک سیستم جستجو هم داره و چه بسا بهتر میشه که با دوتا آرگومان بشه جستجو کرد...

Mori Bone
دوشنبه 18 فروردین 1393, 16:34 عصر
این کار چه فرقی داره با این که به جای نوشتن آیدی کلاس، نام خود کلاس رو توی فیلد مربوطه در جدول دانش آموزا نوشت

Beginner Programmer
دوشنبه 18 فروردین 1393, 16:40 عصر
این کار چه فرقی داره با این که به جای نوشتن آیدی کلاس، نام خود کلاس رو توی فیلد مربوطه در جدول دانش آموزا نوشت
حقیقتا من نفهمیدم چی گفتی یه کم واضح تر بگو:لبخند:

***BiDaK***
دوشنبه 18 فروردین 1393, 16:45 عصر
این کار چه فرقی داره با این که به جای نوشتن آیدی کلاس، نام خود کلاس رو توی فیلد مربوطه در جدول دانش آموزا نوشت
فرقش اینه که اگر جدول جدا باشه مثلا اگر 6 کلاس وجود داشته باشه شما 6 کلاس رو در اون جدول نام هاشو مینویسی و قتی که دانش آموزی رو میخوای insert کنی در جدول دانش آموز کافیه جدول کلاس هارو سلکت کنی و چاپ کنی و از بین 6 کلاس یک کلاس را انتخاب کنی.و از دوباره نویسی و چنباره نویسی هم جلوگیری میشه.

Mori Bone
دوشنبه 18 فروردین 1393, 16:48 عصر
مگه شما نمی گید که یه جدول درس کنم و نام همهی کلاس ها با یک آیدی براش رو توی یه جدول بذارم
بعد برای هر دانش آموز یه فیلد قرار بدم بعد آیدی اون کلاس مربوطه رو قرار بدم.
من می گم که بجای اینکه جدول اضافه درس کنم و نام کلاس هاروتوش بذارم، توی جدول دانش آموز جلوی هر دانش آموز یه فیلد بدارم و مستقیم نام کلاس رو توش بذازم.
میشه اطفا یه دلیل قاطع بیارین تا من از روش شما استفاده کنم

تو روش شما باید هی برم تو جدول کلاس ها بعد آیدی رو بر دارم و بذارم واسه دانش آموز
توجه:تعداد دانش آموزا و کلاسا زیاده

***BiDaK***
دوشنبه 18 فروردین 1393, 16:57 عصر
خوب جدولتو با داده های اضافی پر میکنی.اگه یک جدول جدا داشته باشی و یک بار داخلش کلاس اول اومده باشه و ازین به بعد از آیدیش استفاده کنی بهتره یا اینکه 500 تا دانش آموز کلاس اول داشته باشی و داخل جدول دانش آموز 500 بار بنویسی کلاس اول؟؟؟

Mori Bone
دوشنبه 18 فروردین 1393, 16:58 عصر
من هنوز قانع نشدم

Mori Bone
دوشنبه 18 فروردین 1393, 17:14 عصر
لطفا می شه یه نفر یه دلیل قانع کننده بیاره که من از روش دوست خوبمون thacker استفاده کنم یا نه اصلا یه روش دگ بگه

Mori Bone
دوشنبه 18 فروردین 1393, 22:26 عصر
من از روش thacker استفاده کردم.
حالا یه سوال:
اون آیدی کلاس کلید خارجی داخل جدول دانش آموزانه دگ؟
آخه من هر کاری می کنم این خطا رو میده!!!!!!:گریه::گیج:

#1452 - Cannot add or update a child row: a foreign key constraint fails (`abaszade_proj`.`#sql-1594_1bc`, CONSTRAINT `#sql-1594_1bc_ibfk_1` FOREIGN KEY (`ClassId`) REFERENCES `tblstudent` (`StudentClass`))

نیلوفر66
دوشنبه 18 فروردین 1393, 22:40 عصر
ای دی کلید اصلی داخل جدول کلاس و کلید خارجی داخل جدول دانش اموز
روشی که انتخاب کردی به دلیلهای زیادی مناسب هست و موقع کدزنی و دستورات دیتابیس متوجه میشه
حتی برای کلاس اول یک میتونی کد۱۱ بزنی و...

نیلوفر66
دوشنبه 18 فروردین 1393, 22:43 عصر
من از روش thacker استفاده کردم.
حالا یه سوال:
اون آیدی کلاس کلید خارجی داخل جدول دانش آموزانه دگ؟
آخه من هر کاری می کنم این خطا رو میده!!!!!!:گریه::گیج:

#1452 - Cannot add or update a child row: a foreign key constraint fails (`abaszade_proj`.`#sql-1594_1bc`, CONSTRAINT `#sql-1594_1bc_ibfk_1` FOREIGN KEY (`ClassId`) REFERENCES `tblstudent` (`StudentClass`))

اول جدول کلاسها رو پر کن بعد جدول دانش اموزان

Mori Bone
دوشنبه 18 فروردین 1393, 22:47 عصر
اول جدول کلاسها رو پر کن بعد جدول دانش اموزان

من جدول کلاسهارو پر کردم . جدول دانش آموزان خالیه. می خوام کلید خارجی رو دری کنم این اررور رو میدخ

نیلوفر66
دوشنبه 18 فروردین 1393, 22:53 عصر
من جدول کلاسهارو پر کردم . جدول دانش آموزان خالیه. می خوام کلید خارجی رو دری کنم این اررور رو میدخ
دو جدول رو باهم ارتباط دادی؟قبل ازاینکه اطلاعات وارد کنی مشخص کردی که این فیلد اطلاعاتش رو ازجدول دیگه میگیره؟
نمیتونم اصطلاحش رو انگلیسی تایپ کنم صفحه کلید گوشیم با سایت مشکل پیداکرده، امیدوارم متوجه شده باشید،وقتی ارتباط میدی با خود مای اس کیوال بخوای داده وارد کنی مثل فیلدی که کلید خارجیست مثل کمبوباکس حالت انتخاب داره

Mori Bone
دوشنبه 18 فروردین 1393, 22:55 عصر
آره موقعی که ارتباط میدم این اررور رو میده

Mori Bone
دوشنبه 18 فروردین 1393, 22:56 عصر
لطفا کمکم کنید گیرم

نیلوفر66
دوشنبه 18 فروردین 1393, 23:03 عصر
مقدار پیشفرض ستون خارجی رو نال بذار بعد ارتباط بده تمام مشخصات نوع داده طول داده باید مشابه کلید اصلی باشد

Mori Bone
دوشنبه 18 فروردین 1393, 23:04 عصر
117694این هم عکسش همه چی درسته به جز یه چیز که اونم شما باید بگید

Mori Bone
دوشنبه 18 فروردین 1393, 23:05 عصر
مقدار پیشفرض ستون خارجی رو نال بذار بعد ارتباط بده
می شه یکم دگ توضیح بدید لطفا
می شه به عکس هم توجه کنید مشکلاتش رو بگید

نیلوفر66
دوشنبه 18 فروردین 1393, 23:16 عصر
دسترسی به مای اس کیو ال ندارم . چرا فیلد ایتیودنت ای دی رو داری به کلاس ای دی ارتباط میدی؟درجدول دانش اموز فیلدی به نام ای دی کلاس تعریف کن و بعد بهفیلد ای دی کلاس جدول کلاس ارتباط بده به همین راحتی

Mori Bone
سه شنبه 19 فروردین 1393, 00:01 صبح
حل شد با تشکر فراوان از نیلوفر66 ممنون ممنون ممنون:بوس::خجالت::تشویق::قلب:

چرا فیلد ایتیودنت ای دی رو داری به کلاس ای دی ارتباط میدی؟
مشکل از همین بود (خطای منطقی)