سیستمهایی مثل رایورز و همکاران فایقد یکپارچگی هستند. در این سیستمها برای مدولهای مختلف پایگاه دادههای مجزایی وجود دارد و برای انتقال داده ها بین مدولها مکانیسمهایی وجود دارد که نهایتاً به اختلاف بین دادههای مدولها و گزارشات آنها میگردد. {اضافه کنم که وقتی میگم پایگاه داده جدا منظورم دسته ای از جداول هست که با هم ارتباط (Relation) ندارن و در عمل ممکنه همه در یک پایگاه داده باشن}
در مقابل سیستم انبار نرمافزار سیاق با سیستم حسابداری یکپارچه است.
در سیستمهای یکپارچه واقعی تغییر هر مقدار در سیستم برابر است با تغییر آن مقدار در تمام مدولهای سیستم.
با مثال منظورم رو توضیح میدم.
جداول و ارتباط آنها در سیستم یکپارچه انبار و حسابداری:
جدول انبار
شماره سند انبار-----نوع کالا-----تاریخ------تعداد--------فی----------ورود/خروج-----------شماره سند حسابداری*
جدول ارتباط حسابداری
نوع کالا-----کدینگ حسابداری
جدول اسناد حسابدار
شماره سند حسابداری*-----تاریخ-----شرح سند------شماره سند انبار ------------ شماره سند سیستم الف ------ ...
تحلیل: در این سیستم اسناد دو دسته هستند. دستی و سیستمی. برای اسناد دستی آرتیکلها در یک جدول جدا با شماره سند حسابداری همسان با جدول اسناد ایجاد و در زمان گذارشگیری در قالب اسناد واحد نمایش داده میشن. این در صورتی است که تمام ستونها از شرح سند به بعد تهی باشن. در غیر این صورت یعنی زمانی که برای مثال شماره سند انبار مقدار داشته باشد، سیستم با استفاده از جزئیات درج شده در جدول انبار ویک شابلون، آرتیکلهای سند حسابداری مربوطه را به صورت مجازی ایجاد و در گزارشات وارد میکند. همچنین در این طراحی شماره سند حسابداری در تمام سیستمها ارتباط یک طرفه دارد. یعنی به ازای هر ردیفی که در جدول انبار وارد میشه باید یک شماره سند حسابداری ایجاد و یک ردیف با همان شماره در جدول شماره سند حسابداری ایجاد بشه.
حسنش این هست که هر زمان فی یا تعداد در جدول انبار تغییر کنه، به صورت آنی در همه سیستم تغییر میکنه و سند حسابداری مربوطه نیز تغییر خواهد کرد.
جداول و ارتباط آنها در سیستم غیر یکپارچه انبار و حسابداری:
جدول انبار
شماره سند انبار-----نوع کالا-----تاریخ------تعداد--------فی----------ورود/خروج-----------شماره سند حسابداری
جدول اسناد حسابدار
شماره سند حسابداری-----تاریخ-----شرح سند----- شماره سند انبار ------------ شماره سند سیستم الف
تحلیل: به نظر میرسد این رویکرد با رویکرد قبلی بی تفاوت باشد ولی در واقع تفاوتی اساسی دارد. در این سیستم زمانی که در سیستم انبار سندی ایجاد میشود هیچ تغییری در جدول اسناد حسابداری ایجاد نمیشه. حال یا به صورت خودکار یا با درخواست کاربر سیستم از روی سند انبار (از روی یک شابلون) ردیفی در جدول اسناد حسابداری و ردیفهایی در جدول آرتیکلها ایجاد میکند. در بهترین شرایط شماره سند حسابداری را در سند انبار و شماره سند انبار را در جدول اسناد حسابداری وارد میکند (عطف متقابل). در این حالت این دو سند به هیچ عنوان به هم ارتباطی ندارند و در سطح پایگاه داده تغییر در هیچیک از این جداول تغییر متانسب در جدول دیگر را تضمین نمیکند. نگهداری این ارتباط باید توسط سطوح بالاتر نرمافزار حفظ شود که آن هم با توجه به پیچیدگیها و تعدد جداول و فرمها و همچنین محدودیت ذاتی سیستم عملاْ غیر ممکن است. مثلاْ سیستم نباید بگذارد اگر ردیفی در جدول اسناد حسابداری شماره سند انبار دارد تاریخ آن سند توسط کاربر تغییر یابد چون باعث مغایرت بین دو سیستم انبار و حسابداری میگردد. حال این که در سیستم قبلی تحت همین شرایط سیستم کلاْ تاریخی بابت اسنادی که به سیستمهای دیگه لینک هستند ایجاد نمیکند و مدار این فیلد همیشه تهی خواهد بود. تاریخی که به عنوان تاریخ سند به کاربر نشان داده میشود تاریخ سند انبار خواهد بود و تغییر آن به راحتی امکانپذیر است (شما تاریخ سند را تغییر میدهید ولی سیستم در واقع تاریخ سند انبار را تغییر میدهد).
توجه کنید که در مثالهای بالا من جدول آرتیکلها رو (که در هردو رویکر مشترک است) از روی تنبلی شرح ندادم.
یک نکته ای که هست این که شماره اسناد که در مثالهای قبلی عنوان شد الزاماْ همان شماره سندی نیست که کاربر میبیند بلکه شماره ردیف سند در جداول پایگاه داده است که حتی با پاککردن اسناد هم ممکن است حفظ شود.
لطفاْ اگر مساله گنگ هست یا اشکالی در آن میبینید کامنت بذارید.