PDA

View Full Version : درخواست راهنمایی جهت بهترین روش ذخیره اطلاعات



rezamim
پنج شنبه 29 شهریور 1386, 17:53 عصر
با سلام
فرض کنید برنامه ای دارید با 10 جدول اطلاعاتی با تعداد رکوردهای بالا. جدول 1 حاوی اطلاعات شناسنامه ای افراد و سایر جداول حاوی اطلاعاتی مرتبط با جدول 1 هستند.
امکان اینکه اطلاعات هر سال را جداگانه داشته باشیم وجود ندارد . چون گاهی اوقات به اطلاعات چند سال قبل هم نیاز میباشد. مخصوصا به اطلاعات موجود در جدول 1

در این فکر هستم که آیا روشی میتوان بوجود آورد که مثلا اطلاعات سالهای قدیم ( به غیر از اطلاعات جدول 1 ) را به بانکهای جانبی انتقال داد و در هنگام نیاز از آن استفاده کرد؟
با این کار سرعت اجرای برنامه فوق العاده بالا خواهد رفت .

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

rahro
شنبه 31 شهریور 1386, 07:36 صبح
با سلام
فرض کنید برنامه ای دارید با 10 جدول اطلاعاتی با تعداد رکوردهای بالا. جدول 1 حاوی اطلاعات شناسنامه ای افراد و سایر جداول حاوی اطلاعاتی مرتبط با جدول 1 هستند.
امکان اینکه اطلاعات هر سال را جداگانه داشته باشیم وجود ندارد . چون گاهی اوقات به اطلاعات چند سال قبل هم نیاز میباشد. مخصوصا به اطلاعات موجود در جدول 1

در این فکر هستم که آیا روشی میتوان بوجود آورد که مثلا اطلاعات سالهای قدیم ( به غیر از اطلاعات جدول 1 ) را به بانکهای جانبی انتقال داد و در هنگام نیاز از آن استفاده کرد؟
با این کار سرعت اجرای برنامه فوق العاده بالا خواهد رفت .

البته من همیشه بانکها را در ابتدای برنامه باز میکنم و هر جا لازم باشد از نام جدول استفاده میکنم. بنابراین مشکلی که خواهم داشت اینست که نمیتوانم بانکهای جانبی را هم به همان نام بسازم.
سلام معمار
من امتحان نکردم ولی فکر میکنم میشه از دو تا دیتابیس استفاده کنیم در دو دایرکتوری متفاوت . !! اینجوری نام تمامی جداول در هر دو دیتابیس یکی هستند و عملیات به راحتی با تعیین مسیر جدید انجام میشه.

سعید حمیدیانفر
شنبه 31 شهریور 1386, 07:39 صبح
سلام
من معمولا برای هر دوره از اطلاعات که میتونه یک سال باشه (و البته تو بعضی از موارد برنامه های من مثلا سه ماه بوده ) یک پوشه اختصاص میدم بعد تو هر مرحله از کار بنا به نیازی که دارم از نام پوشه ها برای دسترسی به یک جدول استفاده می کنم



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

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

rezamim
شنبه 31 شهریور 1386, 09:07 صبح
با تشکر از نظرات دوستان
شاید درست توضیح ندادم. این مواردی که شما میفرمایید کاملا صحیح هستند. البته مواقعی که ما مثلا برنامه حسابداری داریم و نیاز به اطلاعات سال قبل یا یک دوره خاص داشته باشیم . بله در این موارد بانکهای مربوط به آن سال را باز میکنیم و کارمان را انجام داده و سپس مجددا به سال جاری باز میگردیم.
ولی مسئله من اینست که از 10 جدول اطلاعاتیم فرضا 6 مورد در تمام دوره ها ثابت هستند و تنها اطلاعات 4 جدول است که حجم بسیار بالا خواهند داشت و نیاز است که جدا سازی و بایگانی شوند و ضمنا میخواهم کاربر اصلا متوجه چنین موضوعی نباشد ( چیزی بعنوان سال یا دوره وجود ندارد و یا اینکه کاربر بخواهد استفاده از فایل بایگانی را انتخاب کند )

rahro
شنبه 31 شهریور 1386, 09:23 صبح
معمار جان: فکر نمیکنم کاربر متوجه بشه زیرا شما بنا به شرطی خاص استفاده از یکی از دیتابیسهاتون رو فعال میکنین !!

rezaTavak
شنبه 31 شهریور 1386, 10:18 صبح
پیشنهاد من استفاده از بانکهای اطلاعاتی مثل mysql و ساختن select مورد نیاز است.

یعنی اینکه بسته به شرایط select مورد نظر ساخته بشه.

البته استفاده از select خود فاکس و cursor هم قابل استفاده است اما سرعتش قاعدتا پایین است.

kia1349
شنبه 31 شهریور 1386, 13:45 عصر
منم نظر آقا رضا رو دارم

rezamim
شنبه 31 شهریور 1386, 16:44 عصر
جالبه منم نظر آقا رضا رو داشتم:لبخند: ( ای بابا منم که رضام! )
چون بنظرم رسید که میتونم توی یه فیلد علامت بگذارم که یعنی اطلاعات تکمیلی مربوطه به بانکهای بایگانی انتقال داده شده و بنابراین اون بانکها رو باز کنم و با یه دستور Select مناسب ، کار رو تموم کنم .
ولی گفتم 1 - شاید راه حل دیگه ای وجود داشته باشه که به ذهنم نرسیده
2 - اینکه : وای خدای من باید کلی از قسمتها رو دوباره تغییر بدم:ناراحت:

اگه نظر دیگه ای باشه همچنان چشم به راهم. ممنون:قلب:

rezaTavak
شنبه 31 شهریور 1386, 21:05 عصر
نه لازم نیست فاکس پرو با cursor قابل update مانند table رفتار میکند. کافیست اسم آنها یکی باشد.

rezamim
یک شنبه 01 مهر 1386, 16:29 عصر
معذرت میخوام.
میدونم Cursor قابل Update شدن چیه ولی متوجه بقیه مطلب نشدم . اگر امکان داره بیشتر توضیح بدهید .
با تشکر

rezaTavak
یک شنبه 01 مهر 1386, 17:43 عصر
SQLEXEC(nH,"SELECT * FROM person Person","Person")


اگر این دستور را اجرا کرده باشید person نام جدول است که عینا مانند جداوال فاکس است. یعنی نامی که به cursor داده اید.