مشاهده نسخه کامل
: یه اشکال در کار با دیتابیس
aliaghaaaaa
05-02-2011, 08:34
سلام.
برنامه ای که من دارم می نویسم یه برنامه ثبت حضور و غیاب هست و مجبورم هر روزکه برنامه باز میشه یه ستون برای تاریخ اون روز تو دیتابیسم اضافه کنم و از دستور زیر استفاده می کنم:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تو متغیر date که از نوع string هست، یه مقدار مثل: "16/11" ذخیره شده که می خوام ستون اضافه شده به همین اسم باشه. ( البته این مقدار هر روز عوض میشه و یه تاریخ جدید بهش اختصاص داده میشه )
ولی وقتی از این دستور استفاده می کنم برنامه اررور زیر رو میده:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
می خواستم لطفا شکل صحیح نوشتن این دستور رو "در صورتی که خودمون اسم ستون اضافه شده به دیتابیس رو وارد می کنیم" برام بنویسید. ( مثل مثال بالا )
ممنون.
M.Hashemi
05-02-2011, 09:44
با سلام
دوست عزیز تا جای که من در مورد اصول طراحی پایگاه داده می دانم شما بانک اطلاعاتیتون را اشتباه ساختید.
یکی از قوانینی که در اصول طراحی پایگاه داده وجود دارد این است که شما یک بار جداول بانک اطلاعاتی را طراحی می کنید وسپس اطلاعات را وارد ان می کنید. پس از این که شما هر بار مجبور می شوید جدول را alter کنید یعنی معماری بانک مشکل دارد.
-----------------
برای این کار من یک پیشنهاد دارم :
شما 2 جدول دارید.
جدول اول شامل اصلاعات افراد است.
جدول دوم هم شاملب حضور و غیاب.
جدول اول که شامل یک کد dPrimary Key برای هر فرد است.
جدول دوم که می توانید یک فیلد identity برای primary key و یک فیلد برای کد فرد و یک فیلد برای تاریخ و ....
تا جای که من می دانم این معماری نباید مشکل داشته باشد
با تشکر
aliaghaaaaa
05-02-2011, 09:53
سلام دوست من.
خب معلوم نیست چند روز برای ثبت حضور و غیاب لازمه. یا اینکه هر چند روز یکبار حضور و غیاب انجام میشه.
و نمیشه برای همه ی ایام هم ستون گذاشت.
بنابراین هر روز که حضور و غیاب انجام میشه باید یه ستون براش ساخته بشه و اطلاعات رو توش ذخیره کنیم.
M.Hashemi
05-02-2011, 10:02
با سلام
نه اشتباه می کنید.
ببینید شما یک جدول را در نظر بگیرید شامل فیلد های زیر :
کد فرد و تاریخ و وضعیت حضور و غیاب و ردیف.
که کد فرد یک کلید خارجی است.
تاریخ روزی است که باید حضور و غیاب انجام شود.
وضعیت حضور غیاب که از نوع bit است و 0 به معنی غیاب و 1 به معنی حضور است.
ردیف هم فقط برای استاندارد سازی جدول مورد استفاده قرار میگیرد که از نوع identity است(primary key).
----------------------
حال شما هر روز که می خواهید حضور غیاب کنید تاریخ را از کاربر دریافت می کنید و کد افراد را از جدول مشخصات افراد دریافت می کنید و وضعیت حضور و غیاب ان را نیز از کاربر دریافت می کنید و در این جدول ثبت می کنید.
هیچ مشکلی من در این معماری نمیبینم.
با تشکر
aliaghaaaaa
05-02-2011, 10:53
سلام.
برنامه من کارش به اینش کل هست که یه سری درس براش تعریف شده.
بعد یه سری دانشجو برای هر درس تعریف می شن.
هر درس که دانشجو توش ثبت میشه ممکنه روزهای خاصی یا ساعات خاصی برگزار بشه.
بعد هر درس رو که انتخاب می کنیم لیست دانشجوهاش میاد و ما ثبت می کنیم کدومشن حاضر هستن و کدومشون غایب. که این تو یه ستون ثبت میشه که مربوط به تاریخ همون روز هست.
این طور تو گزارش گیری هم هر درس رو که انتخاب کنیم لیست دانشجوهاش میاد که معلوم میشه تو هر تاریخ کدومشون حاضر بودن و کدوم غایب.
اگه می خواهید برنامه رو آپ کنم و بدم ببینیدش.
ولی اگه لطف کنید و روش نوشتن اون دستور و بنویسید هم ممنون میشم.
M.Hashemi
05-02-2011, 15:21
با سلام
خوب با این تعاریفی که شما انجام دادید باز هم معماری که من تعریف کردم مشکل ندارد :
شما یک جدول را با فیلد های زیر در نظر بگیر :
"کد درس" و "کد دانشجو" و "تاریخ" و "وضعیت حضور غیاب" و "ردیف"
کد درس که کلید خارجی نسبت به دروس است.
کد دانشجو که کلید خارجی نسبت به دانشجویان است.
تاریخ که تاریخ روز حضور و غیاب است(حالا هر زمان که باشد).
ردیف که برای استاندارد سازی مورد استفاده قرار میگیرد.
* من تا کنون 3 نوع سیستم متفاوت با این معماری طراحی کردم و به هیچ مشکلی هم نداشتم و نیاز به تغییر ساختار جدول هم نداشتم.
----------------------------
دوست عزیز به هر حال این وظیفه من بود که مشکل معماری پایگاه داده را به شما بگم اما برای دستور alter فکر کنم سایت زیر به کارتون بیاد :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
با تشکر
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.