نمایش نتایج 1 تا 4 از 4

نام تاپیک: برای این سیستم دیتابیس چکونه طراحی شود بهتر است؟

  1. #1
    کاربر دائمی آواتار saghari
    تاریخ عضویت
    مهر 1384
    محل زندگی
    Tehran
    پست
    300

    Question برای این سیستم دیتابیس چکونه طراحی شود بهتر است؟

    با درود
    فرض کنید یک نرم افزار کاربردی تحت وب میخواهیم تولید کنیم که باید در یک سازمان و 12 زیر مجموعه اون سازمان استفاده بشه. در سازمان مرکز و هر کدوم از دفاتر هم بطور متوسط 200 تا 800 کاربر قراره از سیستم استفاده کنن. هر کدوم از این مراکز دارای اینترانت داخلی هستند که نرم افزار باید بر روی اون نصب بشه و در عین حال ممکنه کاربران خاصی از طریق اینترنت هم به سیستم وصل بشن.
    سازمان مرکز نیاز داره تا در پایان هر هفته از اطلاعات کلیه مراکز بصورت مجتمع گزارش تهیه کنه.
    حال سوال اینه که برای طراحی بانک و نرم افزار فوق من از کدوم روش استفاده کنم؟
    1- از طریق رپلیکیشن دیتابیس سازمان و مراکز اون. (مشکل : سازمان سفارش دهنده زیاد با رپلیکیشن موافق نیست)
    2- دیتابیس هر مرکز کاملا مستقل باشه و من به ازای هر فیلد در جداول اصلی یک فیلد واسط در مراکز در نظر بگیرم و مراکز در پایان هر هفته اطلات در مرکز جمع بشه و از طریق و فیلدهای واسط گزارش تهیه بشه. (مشکل : پیچیده شدن حفظ یکپارچگی اطلاعات)
    3- هر زمان قراره در جداول پایه اطلاعات ثبت بشه کاربرا به بانک سازمان مرکز وصل بشن و بالطبع در هنگام کار با برنامه هم باید اطلاعات جداول پایه از سازمان مرکز خونده بشه. (مشکل : کند شدن برنامه)
    4- اگه روش دیگه و مناسب تری هست راهنمایی کنید.
    قبلا از توجه شما سپاسگزارم

  2. #2

    نقل قول: برای این سیستم دیتابیس چکونه طراحی شود بهتر است؟

    سلام دوست عزیز
    من در پروژه مشابهی که البته تعداد کاربرها به این زیادی نبود ولی تعداد مراکز حدود 60 مرکز بود از روش دوم شما استفاده کردم، یا این تفاوت که تمام اطلاعاتی که در مراکز ویرایش و یا اضافه میشد هر 10 دقیقه به یک دیتابیس مرکزی(نه دیتا بیس مرکز) ارسال میشه یعنی در حقیقت اطلاعات مرکز هم درست مثل بقیه مراکز هر ده دقیقه به این دیتابیس مرکزی ارسال میشه
    علت اینکه زمان رو ده دقیقه در نظر گرفتم اینه که با حجم زیاد اطلاعات برای انتقال مواجه نشم نمیدونم این برنامه قراره چه کار کنه ولی اگر نعداد رکوردها و جدولها بالاست انتقال یک هفته به یک هفته بار زیادی رو روی کامپیوتر گیرنده میندازه و ممکنه مشکلاتی رو ایجاد کنه در برنامه من در هر روز چیزی در در حدود 2 تا 5 هزار رکورد به کل دیتابیس در هر مرکز اضافه میشه و با این روش به مشکلی برخورد نکردم(گوش شیطون کر) حداقل تا الان
    از ریپلیکیشن هم استفاده نکردم خودم یک برنامه برای اینکار نوشتم که به محض اینکه ارتباط هر مرکز با دیتا بیس مرکزی برقرار باشد و فاصله زمانی ارسال قبلی تا کنون از ده دقیقه گذشته باشد شروع میکنه و اطلاعات رو به دیتابیس مرکزی ارسال میکنه! ساختار دیتابیس مرکزی دقیقا شبیه به دیتابیس هر مرکز هستش و هر جدول فقط 2 تا فیلد اضافه داره یعنی خیلی ساده میشه از همون استور پراسیجرهای اصلی برای اینکار استفاده کرد
    حسن اینکار اینه که مراکز به تنهایی و بدون ارتباط با مرکز میتونند کار کنند در روش سوم حداقل این ضعف وجود داره که اگر ارتباط با مرکز قطع شد تمام یا قسمتی از کاربری برنامه شما هم از کار میافته در روش اول هم که فرمودید خود سازمان تمایلی بهش نداره و منم خودم خیلی با این روش کار نکردم البته
    موفق باشید

  3. #3

    نقل قول: برای این سیستم دیتابیس چکونه طراحی شود بهتر است؟

    سلام.
    آیا دیتابیس مرکز با دیتابیس شعب مختلف اطلاعاتشون یکی هست یا فرق میکنه؟ بحث یکپارچگی اطلاعات رو عرض میکنم.
    دوم اینکه اگر نرم افزار تحت وب هست که دیگه مشکلی نیست.؟ چون یک دیتابیس مرکزی دارید و مابقی کاربران باید توسط یک صفحه وب به دیتابیس وصل شده و اطلاعات رو وارد کنند.
    اگر نرم افزار به صورت Windows Application هست یکی از مناسبترین راهکارها برای اینجور نرم افزارها استفاده از معماری چند لایه هست .یک Web Service که به عنوان لایه میانی قرار میگیرد اطلاعات رو از دیتابیس مرکزی اطلاعات رو خونده و به کلاینتها میدهد. اینجا دیگه مشکل قطعی ارتباط با سرور هم نیست.

  4. #4
    کاربر دائمی آواتار saghari
    تاریخ عضویت
    مهر 1384
    محل زندگی
    Tehran
    پست
    300

    نقل قول: برای این سیستم دیتابیس چکونه طراحی شود بهتر است؟

    با درود
    ضمن تشكر از توجه هر دو عزيز، در مورد سوالات جناب صادقيان:
    آیا دیتابیس مرکز با دیتابیس شعب مختلف اطلاعاتشون یکی هست یا فرق میکنه؟
    ديتابيس كه يكي است ولي اطلاعات ميتونه متفاوت باشه. براي روشن شدن كامل اين بخش يه مثال ميزنم: فرض كنيد در برنامه قرار است از اطلاعات مربوط به قطعات مصرف شده در تعمير pc ها به تفكيك برند و توع قطعات گزارشي گرفته بشه. حالا ممكنه در مركز فقط از مادربرد با برند Asus استفاده شده باشه و در مركز ديگه اي مادربرد و رم از برند Asus و گيگا و .... حال در عين حال كه هر مركز بايد بتونه بصورت مستقل كار كنه، سازمان مركزي هم بايد بتونه گزارشات مجتمع خودش رو در بازه هاي زماني مشخص بگيره.
    دوم اینکه اگر نرم افزار تحت وب هست که دیگه مشکلی نیست.؟ چون یک دیتابیس مرکزی دارید و مابقی کاربران باید توسط یک صفحه وب به دیتابیس وصل شده و اطلاعات رو وارد کنند.
    اگر نرم افزار به صورت Windows Application هست یکی از مناسبترین راهکارها برای اینجور نرم افزارها استفاده از معماری چند لایه هست .یک Web Service که به عنوان لایه میانی قرار میگیرد اطلاعات رو از دیتابیس مرکزی اطلاعات رو خونده و به کلاینتها میدهد. اینجا دیگه مشکل قطعی ارتباط با سرور هم نیست.
    برنامه وب بيس هست و اتفاقا بصورت چند لايه طراحي شده، مشكل اينجاست كه با ساختار اينترنتي كه در كشور داريم اگر بصورتي كه شما فرموديد همه در بستر وب به يك بانك اطلاعاتي واحد وصل بشند (حالا چه با وب سرويس چه ...) ، سرعت بسيار پايينتري در مقايسه با حالتي كه هر مركز در بستر اينترانت خودش كار كنه خواهند داشت و اين نكته رو هم در نظر بگيريد كه هركدوم از مراكز در عين حال كه بايد به مركز اطلاعات جهت گزارشات بدهند، خودشون مستقل كار ميكنن.

    با تشكر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •