PDA

View Full Version : نحوه طراحی بانک اطلاعاتی



omidamiry
شنبه 18 خرداد 1392, 16:17 عصر
با سلام به همه

سوالم در مورد طراحی بانک اطلاعاتی مشتریان است لطفا نضر بدید و توضیح بدید یا روش خودتونو بگید و بهترین روش را

مثال : برای طراحی یه فروشگاه کوچک که مشتریان ثابت داره.
من اینطور طراحی کردم
یک بانک اطلاعاتی بنام (اطلاعات فردی ) با فیلدهای : نام ، کد ، مانده حساب ، تلفن ، آدرس و ......

و یک بانک اطلاعاتی بنام ( گردش حساب ) با فیلدهای : کد (با کد بانک قبلی کلید خارجیه )، تاریخ ، شرح ، بدهکار ، بستانکار

سوالم اینجاس ؟

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

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

آیا درسته ؟

روش دیگری دارید؟

roolinjax
شنبه 18 خرداد 1392, 17:38 عصر
سلام
جالب بود برام تحلیل شما

اول از همه جهت یادآوری بگم که بانک نه جدول (البته شما استادی و من دارم درس پس میدم "اگر اشتباه می گم بهم بگید")

توی اس کیو ال شما می تونید بر اساس فیلد مبلغ بدهکاری و بستانکاری یه sum اونم بر اساس کد مشتری بزنید
قرار نیست که مثلا رکورد به رکورد اونارو توی حلقه جمع بزنید
حالا اگه تعداد رکوردها میلیونی هم باشه در لحظه این کار انجام میشه

از طرفی شما نیازی نداری دو تا فیلد جدا به نام بدهکاری و بستانکاری داشته باشید
بهتره یه فیلد به نام نوع تراکنش بذارید که بر اساس اون معلوم شه این تراکنش بدهی هست یا بستان

اگر فیلد مانده بذارید ممکنه نا همگونی در داده ها پیش بیاد
من این کارو تجربه کردم
مثلا موقعی که تراکنشی انجام میشه شما باید دو عمل انجام بدین 1- ثبت تراکنش در جدول تراکنش ها 2- تغییر مقدار مانده حساب مشتری
خوب این عملیات باید پشت سرهم انجام بشه که اگر یکیشون بنا به هر دلیلی انجام نشه ناهمگونی در داده ها پیش بیاد
به نظرم دلیلی نداره که شما خودتون رو به دردسر بندازین که که مثلا در هر تراکنش بررسی کنید که آیا هر دو عمل انحام شده یا نه که اگر نشده مقدار رو برگشت بده به حالت قبل (متوجه شدین؟)

omidamiry
یک شنبه 19 خرداد 1392, 10:43 صبح
با تشکر

ممنون از توضیحاتتون .

از قدیم گفتم بسیار سفر باید .......
پس شما هم تجربشو داشتین.

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

توضیح : اگر دفاتر حیابداری رو دیده باشین دفتر معین داری ستون های
تاریخ شرح بدهکار بستانکار باقیمانده است
بنظرم کمی با استانداردهای موجود پیش بریم بهتره

با تشکر

majidrezaei2007
یک شنبه 19 خرداد 1392, 11:52 صبح
دوست عزیز قبل از اینکه شما بخوای بانک رو طراحی کنی . بهتره بگم قبل از هر عمل پیاده سازی شما باید تحلیل خودتون رو از چیزی که قراره پیاده بشه بدونید . به قولی هدف معلوم باشه
وقتی آنالیز کامل شد و نیاز ها رو تشخیص دادین باید شروع به طراحی بانک اطلاعاتی کنید . جداول رو به صورت خام طراحی کنید (در نرم افزار های رسم نمودار EER مانند powerdesigner) . سپس اقدام به نرمال سازی آنها بر اساس نیاز سیستم تا سطح 3 یا 4 یا 5 بکنید و سپس شروع به پیاده سازی بانک اطلاعاتی نمائید
این بهترین روال برای طراحی بانک اطلاعاتی است

roolinjax
سه شنبه 21 خرداد 1392, 09:57 صبح
با تشکر

ممنون از توضیحاتتون .

از قدیم گفتم بسیار سفر باید .......
پس شما هم تجربشو داشتین.

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

توضیح : اگر دفاتر حیابداری رو دیده باشین دفتر معین داری ستون های
تاریخ شرح بدهکار بستانکار باقیمانده است
بنظرم کمی با استانداردهای موجود پیش بریم بهتره

با تشکر

سلام
اگر بخوایم کیلویی به جریان نگاه کنیم که در اون صورت حرف شما درسته (راه حل من توی تعداد فیلدها تغییری نداد)
اما به قول خودتون توی دفاتر حسابداری ما یه ستون به نام شرح داریم ، فرض کنید ما می خوایم بر اساس بر اساس پولهای کم و زیاد شده بیایم دریافت ها و واریز ها به صندوق رو در گزارش نشون بدیم
توی گزارش می تونیم بر اساس فیلدی که من گفتم کلمه ی مورد نظر "برداشت یا واریز" رو در ستون شرح بصورت هوشمند توسط خود گزارش بنویسیم (با اسکریپت ها خود گزارش)
اما در روشی که شما می فرمایید باید بیایم شرط بذاریم که اگر ستون بدهکاری بیشتر از 0 هست پس واریز بوده و برعکس که منطقی نیست
چون ممکنه خرید یا فروشی نسیه ثبت بشه که در اون صورت مبلغی در ستون بدهکاری یا بستانکاری نیست پس شرط شما غلط عمل خواهد کرد

"این فقط یه مثال بود ، موارد دیگه ای هم هست . . . . "

ضمنا من نگفتم موقع نمایش به شکل استاندارد نشون ندیم ، من حرفی از گزارش نزدم
می تونیم باز هم بر اساس همون فیلدی که گفتم در موقع گزارش یکی از دو ستون بدهی یا بستان رو پر کنیم

موفق باشید

roolinjax
سه شنبه 21 خرداد 1392, 09:59 صبح
دوست عزیز قبل از اینکه شما بخوای بانک رو طراحی کنی . بهتره بگم قبل از هر عمل پیاده سازی شما باید تحلیل خودتون رو از چیزی که قراره پیاده بشه بدونید . به قولی هدف معلوم باشه
وقتی آنالیز کامل شد و نیاز ها رو تشخیص دادین باید شروع به طراحی بانک اطلاعاتی کنید . جداول رو به صورت خام طراحی کنید (در نرم افزار های رسم نمودار EER مانند powerdesigner) . سپس اقدام به نرمال سازی آنها بر اساس نیاز سیستم تا سطح 3 یا 4 یا 5 بکنید و سپس شروع به پیاده سازی بانک اطلاعاتی نمائید
این بهترین روال برای طراحی بانک اطلاعاتی است

سلام دوست عزیز
شبیه کتابا حرف می زنید
صحبت ما خارج از کتابه ، حرفایی که شما می فرمایید رو امتحان دادیم و به زور تقلب پاس کردیم !!!!
لطفا عملیاتی نظر بدین " صحبت ما اینجا نحوه ی پیاده سازی بود"
موفق باشید

omidamiry
سه شنبه 21 خرداد 1392, 10:14 صبح
سلام
اگر بخوایم کیلویی به جریان نگاه کنیم که در اون صورت حرف شما درسته (راه حل من توی تعداد فیلدها تغییری نداد)
اما به قول خودتون توی دفاتر حسابداری ما یه ستون به نام شرح داریم ، فرض کنید ما می خوایم بر اساس بر اساس پولهای کم و زیاد شده بیایم دریافت ها و واریز ها به صندوق رو در گزارش نشون بدیم
توی گزارش می تونیم بر اساس فیلدی که من گفتم کلمه ی مورد نظر "برداشت یا واریز" رو در ستون شرح بصورت هوشمند توسط خود گزارش بنویسیم (با اسکریپت ها خود گزارش)
اما در روشی که شما می فرمایید باید بیایم شرط بذاریم که اگر ستون بدهکاری بیشتر از 0 هست پس واریز بوده و برعکس که منطقی نیست
چون ممکنه خرید یا فروشی نسیه ثبت بشه که در اون صورت مبلغی در ستون بدهکاری یا بستانکاری نیست پس شرط شما غلط عمل خواهد کرد

"این فقط یه مثال بود ، موارد دیگه ای هم هست . . . . "

ضمنا من نگفتم موقع نمایش به شکل استاندارد نشون ندیم ، من حرفی از گزارش نزدم
می تونیم باز هم بر اساس همون فیلدی که گفتم در موقع گزارش یکی از دو ستون بدهی یا بستان رو پر کنیم

موفق باشید


باز هم صحبت شما راه اصلی خودشو داره

در حسابداری بغیر از دفتر معین دفتری بنام دفتر روزانه وجود دارد که در آن فقط شرح و بستانکار یا بدهکار وجود دارد که همان دفتر ورود و خروج روزانه حالا یا وجه یا هر چیزی که نمایش دهنده بستانکار یا بدهکار بودن صندوق می باشد


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

با تشکر