PDA

View Full Version : گفتگو: به نظر شما بهترین روش برای این نوع سیستم در استفاده از پایگاه داده چیه؟



samadblaj
یک شنبه 07 آبان 1391, 15:26 عصر
سلام دوستان روز همگی بخیر در حال تحلیل یه پروژه هستم برای آموزش پرورش.
این سیستم به این شکله که من برنامه ای براشون طراحی کنم یک سری اطلاعات نزدیک به 10 فرم رو از کاربر دریافت کند و در پایگاه ذخیره نماید.
این نسخه از برنامه باید دست تمامی مدیران مدرسه قرار گیرد. و مدیر بتونه وارد بشه و اطلاعات دانش آموزان رو ثبت کند بعد به اداره آموزش پرورش تحویل دهد.
اما مشکلم اینجاست وقتی 20 تا مدرسه اطلاعات رو ثبت کردن چگونه پایگاه داده رو با هم ادغام کنم؟ که کل اطلاعات مدارس یکی بشه؟ چی روشی رو پیشنهاد میکنید. :چشمک:

* امکانش نیست که تحت شبکه هم بشه.

p.yazdkhasti
یک شنبه 07 آبان 1391, 15:59 عصر
سلام
مهمترین نکته ای که باید به آن دقت کنید این است که در پایگاه داده کلیدها را از نوع Int تعریف نکنید و از GUID به عنوان کلید استفاده کنید. انجام این کار ادغام اطلاعات را ساده تر خواهد کرد.
برای ادغام اطلاعات روش های مختلفی وجود دارد برای مثال:
1- Import و Export اطلاعات در SQL Server
2- SQL Server Integration Services
3- Red-Gate Data Compare
در توضیحات نوشته شده فرض من این بوده است که در نهایت اطلاعات به یک پایگاه داده SQL Server منتقل خواهد شد.

nilmil_nil
یک شنبه 07 آبان 1391, 16:09 عصر
با سلام
راه های زیادی برای ادغام کردن داده وجود داره
اگه از سرویس های SQLServer نمیخواین استفاده کنید
باید اطلاعات هر مدرسه رو به صورت یک فایل در آورده و اونها در برنامه اصلی بخوانید و به دیتابیس اصلی Insert کنید
شبیه برنامه های بانک و بیمه که لیست بیمه و ... رو به این صورت وارد می کنن.

p.yazdkhasti
یک شنبه 07 آبان 1391, 16:28 عصر
سلام
فایل های بیمه دارای فرمت DBF هستند که یک فرمت قدیمی برای ذخیره سازی اطلاعات است. پیشنهاد من این است که در نرم افزاری که در اختیار مدارس قرار می دهید از SQL Server CE استفاده نمایید که نیاز به نصب بر روی دستگاه کاربر ندارد. البته فرض من این است که شما از .net برای تولید نرم افزار خود استفاده می کنید.

samadblaj
یک شنبه 07 آبان 1391, 16:35 عصر
ممنونم از پاسخ هر دو دوست عزیز.
ببینید یه نکته که هست ممکن در ادغام مشکل پیش بیاد شاید راه بهتری هم باشه.
ما یک برنامه بیشتر نداریم که این برنامه رو میخوام تمامی مدران داشته باشن و بتونن اطلاعات وارد کنند و هر ماه دیتابیس رو روی یک دیسک به من تحویل بدن منم اینها رو به پایگاه وصل کنم بعد بتونم روی تمامی داده های مدارس نمودار هایی بدست بیارم...
حالا چی پیشنهاد میکنید ، از چه روشی استفاده کنم که مشکلی پیش نیاد.

samadblaj
یک شنبه 07 آبان 1391, 16:42 عصر
سلام
مهمترین نکته ای که باید به آن دقت کنید این است که در پایگاه داده کلیدها را از نوع Int تعریف نکنید و از GUID به عنوان کلید استفاده کنید. انجام این کار ادغام اطلاعات را ساده تر خواهد کرد.
برای ادغام اطلاعات روش های مختلفی وجود دارد برای مثال:
1- Import و Export اطلاعات در SQL Server
2- SQL Server Integration Services
3- Red-Gate Data Compare
در توضیحات نوشته شده فرض من این بوده است که در نهایت اطلاعات به یک پایگاه داده SQL Server منتقل خواهد شد.




چشم حتما سعی میکنم GUID استفاده کنم ، نکته عالی بود.
از .net استفاده میکنم و SQL Server .
حالا من نمیدونم از کدوم سه مورد استفاده کنم الان پایگاه رو به شکل طراحی کنم که بعد بتونم روی تمامی جداول محاسباتب انجام دهم. و یا مدیر مدرسه بتون اطلاعات جدید بهش اضاف کنه دوباره به من تحویل بده؟




با سلام
راه های زیادی برای ادغام کردن داده وجود داره
اگه از سرویس های SQLServer نمیخواین استفاده کنید
باید اطلاعات هر مدرسه رو به صورت یک فایل در آورده و اونها در برنامه اصلی بخوانید و به دیتابیس اصلی Insert کنید
شبیه برنامه های بانک و بیمه که لیست بیمه و ... رو به این صورت وارد می کنن.



بهترین راه برای روش من به نظر شما کدوم هست . پیاگاه رو به چه شکل به مشتری تحویل بدم و به چه شکل همه رو بدون دردسر ادغام و اطلاعات کلی بدست بیارم؟
اگر اطلاعات هر مدرسه رو در یک پایگاه خاص ذخیره کنم بعد میشه پایگاه تمامی مدارس رو به یک پایگاه سرایری Import کرد و روی داده های تمامی مدارس محاسبات انجام داد؟

p.yazdkhasti
یک شنبه 07 آبان 1391, 17:21 عصر
برای راحت تر بودن ادغام اطلاعات و از طرف دیگر ساده تر بودن نصب نرم افزار در هر مدرسه از موارد زیر یک مورد را انتخاب نمایید:
1- َMicrosoft SQL Express
2- Microsoft SQL CE
3- Microsoft Access Database
برای این که مدارس بتوانند اطلاعات را به صورت ساده در یک دیسک ذخیره کنند، بخشی در نرم افزار خود تحت عنوان "ارسال اطلاعات" قرار دهید و اطلاعات ذخیره شده با استفاده از هر یک از این روش ها را در یک فرمت مثلا zip در محلی بر روی دستگاه کاربر ذخیره نمایید.
در آخر به راحتی می توانید اطلاعات را در یک پایگاه داده در SQL Server ادغام نمایید و محاسبات را بر روی کل اطلاعات انجام دهید.

samadblaj
یک شنبه 07 آبان 1391, 17:29 عصر
برای راحت تر بودن ادغام اطلاعات و از طرف دیگر ساده تر بودن نصب نرم افزار در هر مدرسه از موارد زیر یک مورد را انتخاب نمایید:
1- َMicrosoft SQL Express
2- Microsoft SQL CE
3- Microsoft Access Database
در آخر به راحتی می توانید اطلاعات را در یک پایگاه داده در SQL Server ادغام نمایید و محاسبات را بر روی کل اطلاعات انجام دهید.

p.yazdkhasti دم شما گرم.
حجم اطلاعاتم کم هستش و دوست دارم از َMicrosoft SQL Express استفاده کنم.
ممنونم که راهنماییم کردید.

FastCode
یک شنبه 07 آبان 1391, 20:44 عصر
سلام.
فقط یه چیزی یادت نره.
اطلاعات مدارس مختلف overwrite نشه.
کسی نتونه guid ه کس دیگه رو استفاده کنه.
من اگر هنوز مدرسه بودم ممکن بود این کار رو بکنم.

Sal_64
یک شنبه 07 آبان 1391, 23:23 عصر
سلام - ظاهرا مدیران مدارس بخشنامه هاشون از طریق اینترنت دریافت میکنن- اگه شما دلیلی خاصی برای مراجعه حضوری کاربرا به محل کارت نداری میتونی از طریق اینترنت اینکار بکنی - البته اگه حجم داده هات زیاد نیست و در هر نوبت روی سیستم کاربر اطلاعات قبلی حذف و اطلاعات جدید جایگزینش میشه فایل xml میتونه مناسب باشه - چه برای ذخیره و یا برای انتقال اطلاعات و سپس ریخته شدن در دیتاگرید و بعد هم ذخیره در بانک .

samadblaj
دوشنبه 08 آبان 1391, 14:27 عصر
سلام.
فقط یه چیزی یادت نره.
اطلاعات مدارس مختلف overwrite نشه.
کسی نتونه guid ه کس دیگه رو استفاده کنه.
من اگر هنوز مدرسه بودم ممکن بود این کار رو بکنم.
سلام
ممنونم از پاسخ fastCode باید چیکار کنم ، چه راهی رو پیشنهاد میکنید؟
اگر مدرسه بودی چه کاری میکردید؟!





سلام - ظاهرا مدیران مدارس بخشنامه هاشون از طریق اینترنت دریافت میکنن- اگه شما دلیلی خاصی برای مراجعه حضوری کاربرا به محل کارت نداری میتونی از طریق اینترنت اینکار بکنی - البته اگه حجم داده هات زیاد نیست و در هر نوبت روی سیستم کاربر اطلاعات قبلی حذف و اطلاعات جدید جایگزینش میشه فایل xml میتونه مناسب باشه - چه برای ذخیره و یا برای انتقال اطلاعات و سپس ریخته شدن در دیتاگرید و بعد هم ذخیره در بانک .
سلام دوست خوبم از شما تشکر میکنم بابت راهنمایتون نظر خودم استفاده از پایگاه داده و نصب روی هاست بود اما مشکلی که به من اعلام کردند و باید بررسی کنم تحت نظر قرار گرفتن اینترنت مدارس زیر نظر اینترنت ملی است.
که برای اتصال به پایگاه داده محدودیت وجود دارد(این فکر خودم هستش کارفرما هم به این نکته اشاره کردند.) !!!

حالا پیشنهادات دیگه ای هست بفرماید تا بیشتر استفاده کنیم.

ممنونم

FastCode
دوشنبه 08 آبان 1391, 22:31 عصر
سلام
ممنونم از پاسخ fastCode باید چیکار کنم ، چه راهی رو پیشنهاد میکنید؟
اگر مدرسه بودی چه کاری میکردید؟!

اگر مدرسه بودم ۱۰۰٪ سعی میکردم همه ی نمره هام در سالهای قبل رو با این روش درست کنم.
هیچی, فقط باید تست کنی که سطری که داره import میشه guid ه تکراری نداشته باشه.یا اگر داشت اطلاعاتش کاملاً با دیتابیستون بخونه.در غیر این صورت transaction کلاً fail بشه تا "آن واحد آموزشی محترم" اطلاعتش رو درست کنه.

http://code.google.com/apis/protocolbuffers/ رو هم نگاه کن.نسخه مخصوص c# هم داره که یه پروژه جداست.

Majid842
سه شنبه 09 آبان 1391, 09:59 صبح
با سلام به دوستان گرامی
توصیه من در این نوع پروژه ها اینکه برنامه رو تحت وب اجرا کنید:
1- راحت و آسوده
2-امن
3- بهینه
4- راحتی برنامه نویس از پشتیبانی برنامه
5- هر کاربری میتونه تحت وب کار کنه
6- .....
حالا اگر هنوز شروع نکردی میتونی از Web Application ها استفاده کنی

شما اگر قرار باشه برنامه رو طوری طراحی کنید که رو 100 تا سیستم (یا کمتر یا بیشتر)هم اجرا بشه فرض کن یک تغییر کوچولو توی پرژه بخوای بدی اون وقت باید در تمام 100 سیستم برنامه رو دوباره نصب و را اندازی کنی
در برنامه های تحت وب دیگه مشکل بانک اطلاعاتی هم نداری میتونی یک بانک داشته باشی و برای هر مدرسه یک کدعبور در نظر بگیری وووووو....
آقای Sa_64 هم به همین مطلب اشاره کردند

FastCode
سه شنبه 09 آبان 1391, 20:04 عصر
با سلام به دوستان گرامی
توصیه من در این نوع پروژه ها اینکه برنامه رو تحت وب اجرا کنید:
1- راحت و آسوده
2-امن
3- بهینه
4- راحتی برنامه نویس از پشتیبانی برنامه
5- هر کاربری میتونه تحت وب کار کنه
6- .....
حالا اگر هنوز شروع نکردی میتونی از Web Application ها استفاده کنی

شما اگر قرار باشه برنامه رو طوری طراحی کنید که رو 100 تا سیستم (یا کمتر یا بیشتر)هم اجرا بشه فرض کن یک تغییر کوچولو توی پرژه بخوای بدی اون وقت باید در تمام 100 سیستم برنامه رو دوباره نصب و را اندازی کنی
در برنامه های تحت وب دیگه مشکل بانک اطلاعاتی هم نداری میتونی یک بانک داشته باشی و برای هر مدرسه یک کدعبور در نظر بگیری وووووو....
آقای Sa_64 هم به همین مطلب اشاره کردند
اگر مدارس اینترنت داشته باشند روش خوبیه.

samadblaj
چهارشنبه 10 آبان 1391, 10:06 صبح
با سلام به دوستان گرامی
توصیه من در این نوع پروژه ها اینکه برنامه رو تحت وب اجرا کنید:
1- راحت و آسوده
2-امن
3- بهینه
4- راحتی برنامه نویس از پشتیبانی برنامه
5- هر کاربری میتونه تحت وب کار کنه
6- .....
حالا اگر هنوز شروع نکردی میتونی از Web Application ها استفاده کنی

شما اگر قرار باشه برنامه رو طوری طراحی کنید که رو 100 تا سیستم (یا کمتر یا بیشتر)هم اجرا بشه فرض کن یک تغییر کوچولو توی پرژه بخوای بدی اون وقت باید در تمام 100 سیستم برنامه رو دوباره نصب و را اندازی کنی
در برنامه های تحت وب دیگه مشکل بانک اطلاعاتی هم نداری میتونی یک بانک داشته باشی و برای هر مدرسه یک کدعبور در نظر بگیری وووووو....
آقای Sa_64 هم به همین مطلب اشاره کردند
سلام روزتون بخیر ممنونم از نظر خوبتون.
والا دوست عزیز هینطور که من اعلام کردند گفتند محدودیت هایی در کار داریم ولی دوباره صحبت میکنم چون به نظر خودمم پایگاه باید روی هاست باشه.
حالا یا به صورت سایت یا اینکه دیتا سنتر مرکزی در نظر بگیریم و اطلاعات برای ثبت اتصال برقرار کنند که خیلی از مشکلات رو بر طرف میکننه و کار ما رو هم خیلی ساده تر و منتظر مشکلات احتمالی از قبیل نا آشنا بودن افرا به نرم افزار خطا های احتمالی استفاده از دیسک های سخت برای انتقال اطلاعات...نیستیم.

بله یک تغییر کوچیک باعث خواهد شد که تمامی نرم افزار ها رو از مجموعه جمع کنیم و دوباره انتشار که هزینه هایی برای این کار متحمل خواهند شد و دوباره مشکلات احتمالی...
این سیستم هم برای آموزش پرورش یک کلان شهر هستش منم در رابطه با قیمت قیمتی پایین اعلام کردم تا رزموه ای باشه برای کارای بعدیم (حدود 400 ت).



اگر مدرسه بودم ۱۰۰٪ سعی میکردم همه ی نمره هام در سالهای قبل رو با این روش درست کنم.
هیچی, فقط باید تست کنی که سطری که داره import میشه guid ه تکراری نداشته باشه.یا اگر داشت اطلاعاتش کاملاً با دیتابیستون بخونه.در غیر این صورت transaction کلاً fail بشه تا "آن واحد آموزشی محترم" اطلاعتش رو درست کنه.

http://code.google.com/apis/protocolbuffers/ رو هم نگاه کن.نسخه مخصوص C#‎ هم داره که یه پروژه جداست.

FastCode عزیز خوب شد اون دوره با سی شارپ به این صورت آشنا نبودی !!! ولی حالا که اینجور شد تمام اطلاعات رو کد میکنم. دوست خوبم این سیستم ، سیستم ثبت نمرات و از این قبیل نیست یک سری بخش نامه های ثبت نام و اماری و تحلیلی این سیستم رو باید مکانیزه کنیم و خبری از نمرات و از این قبیل اطلاعات نیست.


اگر مدارس اینترنت داشته باشند روش خوبیه.
اگه اینترنت داشته باشه عالیه و این برنامه فقط مجوز ورود برای مدیران مدرسه رو داره پس هر مدیر به احتمال زیاد به اینترنت دسترسی دارد | اگر پایگاه تحت وب و برنامه تحت ویندوز دوباره مشکلاتی هست ولی به قول دوستمون سایت باشه حتی مشکلات جابجایی و محدودیت دسترسی هم حل میشه ولی اینا اجبار به تحت وب بودن این برنامه دارند.

ممنونم از پیشنهادات خوبتون شما همیشه به من لطف داشتید امیدوارم بتونم جبران کنم.

FastCode
چهارشنبه 10 آبان 1391, 21:53 عصر
اگر پستهام رو بگردی یه driver ه dbase IV توش هست که دیتابیس مدارس رو هم ساپورت میکنه.اون موقع اول دبیرستان بودم.
شاید اون هم به کارت اومد.

samadblaj
دوشنبه 15 آبان 1391, 11:21 صبح
اگر پستهام رو بگردی یه driver ه dbase IV توش هست که دیتابیس مدارس رو هم ساپورت میکنه.اون موقع اول دبیرستان بودم.
شاید اون هم به کارت اومد.

میشه بیشتر توضیح بدید کاربردش چیه؟

FastCode
دوشنبه 15 آبان 1391, 16:02 عصر
driver ه dbase دیگه.
فایل رو بهش میدی برات میخونه.
http://www.dbase.com

http://barnamenevis.org/attachment.php?attachmentid=41915&d=1262352211

جالبه که ۱۵۶ نفر دانلود کردن ولی کسی تشکر نکرده.
رکورد دانلود بی تشکر رو زدم.:کف:

Version 2:
الان که فایل رو نگاه کردم دیدم کلی ایراد داره.البته همه در زمینه سرعت بود.