View Full Version : طراحی یک جدول
devil00x
دوشنبه 24 تیر 1392, 07:24 صبح
با سلام خدمت اساتید من یک بخشی تو برنامم دارم که بحث زمانبندی هستش طراحی UI به شکل تصیویری هستش که ضمیمه کردم.
می خاستم دوستان لطف کنن و ایده ای اگر در مورد طراحی جدول دیتابیس همچین فرمی دارن اعلام کنن.
چون خودم واقعا نمی دونم چطور باید طراحی کنم.
mahan.2002
دوشنبه 24 تیر 1392, 08:34 صبح
سلام
شما اگر کاری که میخواهید بکنید رو توضیح بدید رو راحت تر روش میشه..در مورد اون راهنماییتون کرد..
devil00x
دوشنبه 24 تیر 1392, 09:48 صبح
ببخشید توضیحاتم کامل نبود.
ببینید من میخام یک سری عملیات رو مثلا اجرای یک دستور رو بر طبق یک زمانبدی خاص انجام بدم.
فرض کنید کاربر میاد اعلام میکنه که هر 2 ساعت یکبار موجودی صندوقم رو اعلام کن.
یک کاربر میگه هر هفته 2شنبه و 5 شنبه برام اس ام اس بفرس.
یکی دیگه میگه هر 3 روز یکبار بهم اعلام کن که چند ساعت کارکرد داشتم، یا کاربر دیگه میگه فقط در این تاریخ و ساعت خاص بهم یک رویداد مهم است بهم اعلام کن.
mahan.2002
دوشنبه 24 تیر 1392, 10:47 صبح
من برا استراتژی برنامه تو یه راهی رو پیشنهاد میدم اونم اینکه شما بایید طبق اخرین واحد تون عمل کنید یعنی همون ساعت و طبق اون اطلاعاتی که کاربر اعلام میکنه برای حداکثر یک ماه این زمانبندی رو در جداول مورد نظر تون دخیره کنید .. بعد از اون یک ماه دباره طبق همون زمان بندی زمان هایی که باید به مشتری اطلاعات ارسال بشه رو در جدول اضافه کنید.. و متونین او اطلاعات ماه ، یا ماه ها قبل روهم که لازم نیست پاک کنید. دیتابیستون هم سبک باشه.. هزینه jion پایین باشه.
پس با این حساب شما یه جدول میخواید که اطلاعات زمان بندی کاربرتون رو دخیره کنید و یک جدول که ساعت اعلام شده رو در اون ذخیره کنید.. البته یکم کار برنامه نوسی تون مشکله مثلا باید از زمانی که کاربر اعلام میکنه باید اطلاعات اون رو در جدول زمانبدی ذخیره کنید مثلا کار برا اعلام میکنه هر دوشنبه شما باید محاسبه کنید دوشنبه این هفته چه تاریخی هست ، دوشنبه هفته بعد ، دوشنبه هفته بعد ، ... تا یک ماه رو باید حساب کرده و در جدولی که بطور مثال اسم اون رو زمانبدی ذخیره کردیم ثبت کنید...
و هر ساعت یک برنامه بیاد چک کنه که از این جدول و طبق این اطلاعات مورد نظر ارسال بشه ..
با این حساب شما یک جدول دیگر هم میخواین برای ثبت اطلاعات برای ثبت اطلاعات پایه که کاربر اعلام کرده است...
جداولی که بنظرم باید تعریف کنید به این صورت هست :
جدول کاربر ( کد کاربر ( اصلی ) ، نام ، ... )
جدول زمانبدی ( کد زمانبدی ( اصلی )، کد کاربر ( خارجی ) ، تاریخ ، ساعت ، ...)
جدول اطلاعات پایه ( کد پایه زمانی ( اصلی ) ، کد کاربر ( خارجی ) ، روز (مانند دوشنبه ، .. ) ، ساعت ، تاریخ " البته تاریخ در صورتی که اعلام شده باشد" )
در تاریخ اگر کابر اعلام نکرده باشد نال ذخیره شود
البته نکته ای هم داره که اگر لازم بود بتونم توضیح میدم که برای چندین تاریخی ناهمگون اعلام کرد چیکار کرد " مثلا دوشنبه این هفته ، پنج شنبه دو هفته دیگر ، .. " و به صورت دیفالت روز های خود رو بر اساس روزهای هفته تاتعیین نکرد.. که باید برای اون هم یک جدول دیگر در نظر بگیرید..
در هر صورت اگر راهنمایی خواستید بگید . درصورتی بتونم راهنمایی تون کنم.:لبخندساده:
موفق باشین.
devil00x
دوشنبه 24 تیر 1392, 11:42 صبح
متشکرم دوست عزیز که پاسخ دادین.
اما این راهکار زیاد مناسب نیست.
البته باید عرض کنم که با اینکه همه رو از یک نوع مثلا ساعت بگیرم موافقم اما این که هر ماه مثلا بشینم محاسبه کنم و برای ماه بعد ایجادش کنم زیاد جالب به نظر نمیاد و راهکار مهندسی نیست.
mahan.2002
دوشنبه 24 تیر 1392, 12:24 عصر
متشکرم دوست عزیز که پاسخ دادین.
اما این راهکار زیاد مناسب نیست.
البته باید عرض کنم که با اینکه همه رو از یک نوع مثلا ساعت بگیرم موافقم اما این که هر ماه مثلا بشینم محاسبه کنم و برای ماه بعد ایجادش کنم زیاد جالب به نظر نمیاد و راهکار مهندسی نیست.
نمیدونم دوست عزیز شما اگر راه کار مهندسی!!! در این باره دارین ارائه کنید...
ما و هم دوستان استفاده کنیم .
devil00x
دوشنبه 24 تیر 1392, 12:56 عصر
نمیدونم دوست عزیز شما اگر راه کار مهندسی!!! در این باره دارین ارائه کنید...
ما و هم دوستان استفاده کنیم .
دارم در موردش مطالعه می کنم امیدوارم به یک راهکار منطقی و معقول برسم.
و باز هم از شما متشکرم.
devil00x
دوشنبه 24 تیر 1392, 13:30 عصر
یعنی واقعا مرحبا.
ممنونم از دوست خوبم mh_br واقعا همیشه ایده هاش عالیه.
با سه فیلد این جدول رو طراحی کرد با حداقل فیلد و بهترین حالت به این صورت:
فیلد اول schedule type که نوع زمانبندی رو مشخص می کنه که اگه بخوایم با تصاویر ضمیمه تطبیق بدیم :
1- every week
2- specified time
3-days
4-hours
و فیلد دوم value freq هستش که مهم ترین و جالبترین قسمتش هست
که برای حالت اول این فیلد رو به صورت بیتی محاسبه می کنیم
فرض کنید ما هفت رو در هفته داریم که میشه 7 بیت و اگه فرض رو بگیرم که از چپ به راست از شنبه تا جمعه داشته باشیم
مثلا اگر کاربر شنبه و 4شنبه رو انتخاب کرد مقدارش میشه 68 و در این فیلد 68 رو قرار می دیدم و اگه کاربر تمام روزهای هفته رو مشخص کرد 127 .
برای حالت دوم مقدار 0 رو قرار می دیم (این قسمت رو در فیلد بعد متوجه میشید دلیلش چیه)
برای حالت سوم تعداد روز رو قرار میدیم.
برای حالت 4 هم تعداد ساعت رو قرار میدیم.
و اما فیلد آخر که یک مقدار زمانی در خود ذخیره می کند:
یعنی تاریخ 4/4/2013 16:06
که برای تمام حالت جواب میده ،
توضیح فیلد دوم که برای حالت 2 مقدار 0 قرار میگیره چون مقدار این فیلد در فیلد سوم مشخص شده است.
mahan.2002
دوشنبه 24 تیر 1392, 13:53 عصر
ایده خوبیه ..
برای این فیلد ..
ولی خب چطور میخواهین طراحی کنید
مثلا الان در ساعت x ما میخواهیم بدونیم چندین ارسال باید داشته باشیم چطور متوجه این موضوع میشن؟
و جداولی که برای اون باید تعریف کنید چگونه است؟؟
contona
سه شنبه 25 تیر 1392, 12:49 عصر
سلام دوستان عزیز. من میخوام تو یه جدول دیتا بیس که کلید اصلیشم مسخصه داده رو از طریق سی شارپ وارد کنم .چون داده ام در کلید اصلی تکراریه ارور داپلیکید میده ..طبییه..میخواستم ببینم چکار کنم کلید اصلی رو داشته باشم و بتونم داده رو با این شرایط وارد کنم و ارور نده. ممنون.
mahan.2002
سه شنبه 25 تیر 1392, 14:26 عصر
سلام دوستان عزیز. من میخوام تو یه جدول دیتا بیس که کلید اصلیشم مسخصه داده رو از طریق سی شارپ وارد کنم .چون داده ام در کلید اصلی تکراریه ارور داپلیکید میده ..طبییه..میخواستم ببینم چکار کنم کلید اصلی رو داشته باشم و بتونم داده رو با این شرایط وارد کنم و ارور نده. ممنون.
سلام دوست عزیز
شما یا باید کلید اصلیتون یونیک باشه . یعنی واحد باشه تکراری نباشه . چون کلید اصلی نباید تکراری باشه .. یا میشه اون رو به عنوان کلید اصلی معرفی نکنید ..
در ضمن فکر میکنم در طراحیتو مشکلی دارید که میگید کلید اصلی تکراری میشه .. باید برنامه ای که میخواهید طراحی کنید توضیح بدید تا بشه راحت در موردش بحث کنیم ..
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.