PDA

View Full Version : سوال: پیاده سازی صفحاتی شبیه ثبت نام سازمان سنجش



mehrdad85
یک شنبه 29 خرداد 1390, 14:36 عصر
سلام دوستان حتما همه شما سایت سازمان سنجش را دیدید و با اون برای کنکور های مختلف ثبت نام هم کرده اید . اما اجازه بدید اول من یه توضیح مختصر بدم و بعئ مشکلمو مطرح کنم .ثبت نام داخل این سایت از طریق چند صفحه یا اصطلاحا گام انجام میشه که وقتی کاربر در ابتدا اقدام به ثبت نام میکنه در گام اول ( که داخل یک صفحه هستش)قوانین و مقررات و نحوه انجام ثبت نام را یاد آوری میکنه و با کلیک بر روی دکمه " گام بعدی" وارد صفحه دیگه ای میشه که داخل اون صفحه باید مشخصات فردی خودشو وارد کنه و با کلیک بر روی دکمه " گام بعدی " وارد صفحه دیگری میشه که داخل اون مشخصات تحصیلی و سوابق تحصیلی خودشو وارد میکنه و به همین ترتیب پیش میره تا این که این اطلاعات داخل دیتابیس ثبت میشه نکته قابل توجه اینه که تا وقتی که به مرحله آخر و یا گام آخر نرسه این اطلاعات داخل دیتابیس ثبت نمیشه حالا من یه همچین سیستمی را میخام پیاده سازی بکنم که از چند تا مرحله تشکیل شده و کاربر باید یه سری اطلاعات را در حین ایم مراحل تکمیل کنه و تا وقتی که به مرحله اخر نرسیده این اطلاعات داخل دیتابیس ثبت نشه (و از طرفی بتونم داخل یک مرحله احیانا به اطلاعات مرحله یا مراحل قبلی دسترسی داشته باشم البته این موضوع اهمیت کمتری نسبت به موضوع اول داره)باید از چه روش ، تکنولوژی یا راه حلی استفاده کنم؟ممنون میشم کمکم کنید چون بهش واقعا نیاز دارم مرسی

Javad.Kashi
یک شنبه 29 خرداد 1390, 15:32 عصر
سلام
روند(Step by Step) به این صورت است که شما برای هر مرحله از یک کامپوننت View استفاده کرده و در هر View پس از Validation کاربر را به View بعدی هدایت می کنید.
در مورد ذخیره اطلاعات قبل از ثبت در پایگاه داده، از Session استفاده می کنید.

یا علی

mehrdad85
دوشنبه 30 خرداد 1390, 08:56 صبح
سلام
دوست عزیز من اگه بخام از Session استفاده کنم باید در حدود 100 تا Session بسازم
آیا این منطقیه؟
آخه چندین و چند مرحله هستش که داخل هر مرحله باید فیلد های زیادی را ثبت کنم
نظرتون در مورد استفاده از wizard چیه؟
من استفاده کردم از wizard اما چندان راضی نیستم
داخل یک view میشه یه view دیگه گذاشت؟

ممنون میشم راهنمایی کنید
مرسی

FirstLine
دوشنبه 30 خرداد 1390, 14:26 عصر
با سلام
میتونی هر صفحه را بر اساس session id در دیتابیس اضافه کنی و یه فیلد تکمیل هم واسش بزاری و در session timeout رکوردهایی که تکمیل نشده را حذف کنی اینجوری دیگه مشکلی پیش نمیاد
البته میتونی یه یوزر پسورد را در همان مرحله اول بگیری و بر اساس اون کار کنی (مثلا مثل سازمان سنجش که شماره پرونده داره)
با تشکر

ricky22
دوشنبه 30 خرداد 1390, 15:26 عصر
به نظر من از Session استفاده نشه.
از Temp table استفاده کنید.
Storing user variables in database vs session in asp.net (http://stackoverflow.com/questions/3354360/storing-user-variables-in-database-vs-session-in-asp-net)

mehrdad85
چهارشنبه 01 تیر 1390, 13:22 عصر
سلام
روند(Step by Step) به این صورت است که شما برای هر مرحله از یک کامپوننت View استفاده کرده و در هر View پس از Validation کاربر را به View بعدی هدایت می کنید.
در مورد ذخیره اطلاعات قبل از ثبت در پایگاه داده، از Session استفاده می کنید.

یا علی


سلام
ممنون که وقت گذاشتی و راهنمایی کردی دوست عزیز
فقط یه سوال و اون اینکه برای هدایت کردن هر view به یک view دیگر باید کد بنویسم ؟چکار باید بکنم؟
اگه کد میخاد ممنون میشم راهنماییی کنی که از چه کدی باید استفاده کنم؟
مرسی

mehrdad85
چهارشنبه 01 تیر 1390, 13:24 عصر
با سلام
میتونی هر صفحه را بر اساس session id در دیتابیس اضافه کنی و یه فیلد تکمیل هم واسش بزاری و در session timeout رکوردهایی که تکمیل نشده را حذف کنی اینجوری دیگه مشکلی پیش نمیاد
البته میتونی یه یوزر پسورد را در همان مرحله اول بگیری و بر اساس اون کار کنی (مثلا مثل سازمان سنجش که شماره پرونده داره)
با تشکر


با سلام
بابت راهنمایی و پاسختون یک دنیا ممنون
فقط یه سوال داشتم
این " فیلد تکمیل" را باید کجا در نظر بگیرم؟
آیا نیازه که برای هر مرحله ای که قراره داده در دیتابیس ثبت بشه یک فیلد تکمیل در نظر گرفت؟

ممنون میشم یک مقدار بیشتر توضیح بدید
مرسی

mehrdad85
چهارشنبه 01 تیر 1390, 13:29 عصر
به نظر من از Session استفاده نشه.
از Temp table استفاده کنید.
Storing user variables in database vs session in asp.net (http://stackoverflow.com/questions/3354360/storing-user-variables-in-database-vs-session-in-asp-net)

سلام
دوست عزیز میشه یه مقدار بیشتر توضیح بدی؟
راسیت من یکم گیج شدم
من اینطوری دستگیرم شد
الان توضیح میدم اگر اشتباه هست که ممنونت میشم تصحیح بفرمایی و اگر هم نیاز به راهنمایی و توضیح داره کمک کنی
برای پیاده سازی نیاز داریم که برای هر مرحله یک جدول در دیتابیس در نظر بگیریم و مقادیر موقتی هر مرحله را داخل جدول مربوط به خودش ثبت کنیم و در مرحله آخر نیز همه اطلاعات ثبت شده در جداول موقتی را داخل جدول اصلی ذخیره کنیم و جدول موقتی را پاک کنیم
درسته؟

mehrdad85
چهارشنبه 01 تیر 1390, 14:37 عصر
سلام

دوستان یه سوال داشتم ممنون میشم پاسخ بدید
ببینید نتیجه این شد که داخل table اصلی یک فیلد از نوع boolean در نظر بگیریم که وضعیت اون رکورد را نشون میده
اگه تمامی فیلد هاا به درستی تکمیل شده باشند و به عبارتی ثبت نام به درستی انجام شده باشد این فیلد مقدار true میگیرد و اگر هر نوع مشکلی در حین ثبت نام وجود داشته باشد این فیلد مقدار false میگیرد. هر مرحله درج در دیتابیس در یک صفحه انجام می شود . تفاوت این سیستم من با سیستم ثبت نام در این است که فرض کنید یک نفر مسول است که بعد از ورود به سیستم با نام عبور و پسورد اقدام به وارد کردن اطلاعات ثبت نامی که به صورت کاغذی در فرم ثبت شده است در سیستم نماید .
اکنون دیگر استفاده از Session وجود ندارد
چطور میتونم بفهمم که اطلاعات مربوط به مرحله مثلا سوم درج دنباله اطلاعات مرحله دوم است یا اینکه ثبت نامی از آغز انجام گرفته است؟
نمیدونم تونستم سوالمو و منظورمو درست مطرح کنمک یا نه اما اجازه بدید یه مثال بزنم
ثبت نام از دو مرحله الف و ب تشکیل شده
در مرحله الف فیلد های 1و2و3 وارد دیتابیس میشن و در مرحله ب فیلد های 4و5و6 در دیتابیس ثبت میشن
فیلد 7 نیزبیانگر وضعیت است که رکورد مورد نظر قابل قبول است یا خیر

کاربر وارد سیستم میشه
مرحله الف را در دیتابیس ثبت میکنه و به صفحه مربوط به مرحله ب می رود حال از کجا میشه فهمید که در اطلاعات وارد شده در این مرحله مربوط به رکورد مرحله الف است یا اینکه در یک رکورد جدید این اطلاعات ثبت می شود ؟


مرسی
واقعا نیازمند کمکتون هستم
با تشکر

ricky22
چهارشنبه 01 تیر 1390, 16:25 عصر
سلام
دوست عزیز میشه یه مقدار بیشتر توضیح بدی؟
راسیت من یکم گیج شدم
من اینطوری دستگیرم شد
الان توضیح میدم اگر اشتباه هست که ممنونت میشم تصحیح بفرمایی و اگر هم نیاز به راهنمایی و توضیح داره کمک کنی
برای پیاده سازی نیاز داریم که برای هر مرحله یک جدول در دیتابیس در نظر بگیریم و مقادیر موقتی هر مرحله را داخل جدول مربوط به خودش ثبت کنیم و در مرحله آخر نیز همه اطلاعات ثبت شده در جداول موقتی را داخل جدول اصلی ذخیره کنیم و جدول موقتی را پاک کنیم
درسته؟
سلام.
ببینید این بسته به طراحی شما هست که داده ها رو چگونه در دیتابیس ذخیره کنید. اما به استناد به به لینکی که به شما دادم ذخیره ی داده های کاربر در چنین شرایطی در دیتابیس بهتر از Session هست.
اما در مورد نحوه ی ذخیره :
سناریو :
کاربر می خواهد فاکتور یک سیستم مالی را ثبت کند که چند مرحله دارد
1)انتخاب کالا و جزییات آن
2)ثبت مقادیر مالی فاکتور
3)ثبت اطلاعات فروشنده
خب ما 3 مرحله داریم که کاربر برای هر مرحله اطلاعاتی را باید انتخاب و ذخیره کنید و در نهایت همه ی این اطلاعات در یک جدول ذخیره می شوند.
می توانید در هر مرحله اطلاعات وارد شده را در جدول ذخیره و بروزرسانی کنید ولی باید مکانیزمی برای جلوگیری از ماندن داده هایی که کامل ثبت نشده اند داشته باشید.
مثلا من مشخصات کالا را ثبت کردم و اینترنتم قطع شده یا ... خب پس باید با یک روشی این مشکلات را هندل کنید مثلا با یک Trigger هر شب داده هایی که ذخیره ی آنها با موفقیت انجام نشده حذف کنید.
موفق باشید.

smhz777
پنج شنبه 02 تیر 1390, 00:36 صبح
سلام
دوست عزیز خسته نباشید
ببین شما از فیلد 1 تا 7 رو خوب تحلیل کردی ولی یک فیلد کلیدی هم باید در نظر بگیری
مثلا فیلد شماره 8 می شه کد ملی که برای همه افراد یک سانه
خوب حلا باید شما این فیلد کلیدیت رو در صفحه اول ثبت نام از کاربر بگیری و هم به عنوان فیلد کلیدی در دیتابیس قرارش بدی و هم تویک Session قرارش بدی
بعه در صفحات بعدی Session رو چک میکنی
اگر خالی بود معلومه کاربر از صفحه اول شروع نکرده وباید برگرده به صفحه یک
واگر پر بود با استفاره از مقتار اون که فیلد کلیدت هم هست بقیه مقادیر رکرد رو به روز کنی.
اگر سوالی دشتی بگو در خدمتم
یاحق