PDA

View Full Version : پایگاه داده در برنامه سرور/کلاینت



morteza5358
سه شنبه 01 بهمن 1392, 19:14 عصر
سلام
من یه برنامه سرور دارم که ممکنه 1000 تا کلاینت بهش وصل بشن.
یه دیتابیس هم دارم.کلاینت ها ممکنه چند دقیقه یک بار با دیتابیس کار داشته باشن.
حالا سوالم اینه:
به نظرتون باید چطوری به دیتابیس وصل بشم؟
مثلا هر کاربر که خواست با دیتابیس کار کنه، بیام یه کانکت بزنم به دیتا بیس و بعد از اتمام کار کانکتم رو ببندم؟
یا اینه یه کانکت کلی داشته بام و کار تمام کاربرا رو با اون انجام بدم؟

در حال حاضر، من یه کلاس استاتیک دارم. که مثل حالت دوم کار میکنه. یه موتکس هم گذاشتم روی متد که در هر لحظه فقط یه کاربر بتونه به دیتا بیس متصل بشه.
میخوام بدونم کارم درسته؟راه بهتری سراغ دارین؟اصلا موتکس نیازی هست؟

منتظر نظرتون هستم

Mani_rf
سه شنبه 01 بهمن 1392, 20:09 عصر
شما کلا برای کار کردن با دیتابیس باید کانکشن رو باز کنی و به محض این که کارت تموم شد اون رو ببندی. نمیدونم این رو میدونی یا نه اما هر DBMSی به شما یک تعداد کانکشن محدود میده . مثلا تا جایی که یادمه SQL Server و Oracle به شما 255 تا کانکشن همزمان مید و بیشتر از اون رو خطا میده. البته اگر برنامت واقعا 1000 تا کاربر داره باید بری به سراغ فریم ورک ها . حالا یا اگه توانش رو داری خودت بنویسی و اگر هم نه که از فرم ورک های آماده استفاده کنی.

morteza5358
سه شنبه 01 بهمن 1392, 23:49 عصر
ممنون از راهنمایی تون...
یه سوال:
این که تعداد کانکشن هایی که زده میشه و بسته میشه، زیاد بشه مشکلی پیش نمیاد؟
یعنی برای چنین برنامه ای SQL Server جواب نمیده؟؟؟؟؟؟ ولی من شنیدم این دیتابیس خیلی قدرتمنده...
یه سوال دیگه:
اگر هر کاربری، برای خودش جدا کانکت بزنه، اونوقت اگه دو کاربر همزمان یه فیلد رو تغییر بدن، این کار ارور نداره؟یعنی خود DBMS جلوی خطا رو میگیره یا ما باید مدیریتش کنیم؟

ممنون میشم کمکم کنید....

aghayex
چهارشنبه 02 بهمن 1392, 09:36 صبح
دوست عزیز معقول هست که هر موقع با دیتابیس کار داشتی به اون کانکت بشی . sql و ... هم هر کدوم تا حدی می تونن انتظارات متقاضی رو برآورده کنن و این طور نیست که بگیم چون sql برنامه ی قدرتمندی هست پس دیگه کار تمومه . در خصوص دسترسی دو کاربر به صورت همزمان به یک فیلد راه کار های مختلفی هست اما اگه مدیریت نشه با خطا مواجع می شید .
راهکاری مثل قرار دادن فیلدی در رکورد برای قفل کردن اون رکورد زمانی که کاربر اول به اون دسترسی پیدا می کنه تا دیگه کاربرهای دیگه نتونن به اون دسترسی داشته باشن .