PDA

View Full Version : سوال: نحوه ذخیره کردن یک فاکتور



hidensoft
جمعه 21 تیر 1387, 16:48 عصر
سلام
دوستان یک فاکتور رو در نظر بگیرید . یکسری اطلاعات مربوط به خودش رو داره . یکسری اطلاعات مربوط به جنس فروخته شده . یکسری اطلاعات مربوط به نحوه تسویه حساب.
اگه می شه توی نحوه ذخیره کردن اطلاعات به من کمک کنید .
من خودم اینجوری فکر می کردم که یک تیبل داشته باشم که اطلاعات اصلی رو نگه داره ٰ. مثل نام خریدار . تاریخ خرید . جمع کل . مبلغ پرداختی .
یک تیبل برای ذخیره لیست کالا فروخته شده . یک تیبل برای ذخیره نحوه تسویه حساب. اما سوال اینجاست که چگونه باید این لیست باز یابی بشه . اولش گفتم یه ID برای فاکتور در نظر می گیرم و با اون باقی اطلاعات رو بدست میارم . اما مسئله اینجاست که به مرور زمان سطر ها زیاد می شن و باعث قفل شدن برنامه می شه این موضوع .

با تشکر

hrj1981
جمعه 21 تیر 1387, 19:23 عصر
من از يك تايمر با مقدار 1 اسفاده مي كنم و توي رويداد اون فيلدهايي كه بايد با شماره آي دي من يكي باشه فراخواني كنه.مثلا اگر فعال سازي تايمر را درون چنج فيلد Id بگذاري خيلي بهتره.

hidensoft
شنبه 22 تیر 1387, 01:54 صبح
من متوجه نشدم . می شه یه بار دیگه توضیح بدید ؟

vbhamed
شنبه 22 تیر 1387, 11:05 صبح
سلام
استفاده از Table هايي كه خودتون گفتيد روش درستي هست و اصولي هم همينه
اما اينكه مي گين زياد بشه قفل مي كنه نا مفهمومه، براي چي قفل كنه، دليلي نداره


ضمنا خدمت رفتن كه اينقدرهام سخت نيست، هر كاري رو سخت بگيري سخت ميگذره، اميدوار باش، سريع تموم ميشه و خاطرش ميمونه

zealot
شنبه 22 تیر 1387, 12:58 عصر
میتونی از forigen key برای ارتباط جداول استفاده کنی
بعد یه کوئری بنویس که شرطش برابری فیلدهای اصلی وخارجی باشه

hidensoft
شنبه 22 تیر 1387, 17:29 عصر
هر روز حدود 3500 تا 5000 تا فاکتور رد می شه . به عبارتی حدود ماهی 120 هزار تا و سالی 1 ملیون 44 هزار فاکتور . اگه هر فاکتور 20 قلم جنس داشته باشه سر سال با یک تیبل 29 ملیون سطری روبرو می شم. حالا حجم اون 3 تا تیبل دیگه به کنار .
می خام optimize باشه پایگاه داده . به این دلیل میگم قفل می کنه.
من در ذخیره کردن یک فاکتور هم مشکل داشتم . چون وقتی هنوز فاکتور ثبت نشده نمی تونم اطلاعات رو وارد تیبل بکنم . پس یک تیبل با همن مشخصات تیبل فاکتور ساختم . اطلاعات فرد رو اونجا میریزم اگه فرم رو کنسل کرد تیبل رو خالی می کنم اگه ثبت کرد اطلاعات رو از این تیبل به تیبل اصلی انتقال می دم و در نهایت تیبل رو خالی می کنم . به نظر شما این روش بهتره یا روش های دیگه ای هست که بهتر جواب بده ؟

vbhamed
شنبه 22 تیر 1387, 18:13 عصر
سلام

روش ساخت Table ها اصولي هست
براي مديريت بهتر تعداد زياد ركوردها از بانك اطلاعاتي SQL Server استفاده كنيد