الرئيسية > مقالات, محاسبة, برمجة, عام > بنية شجرة المحاسبة في قواعد البيانات

بنية شجرة المحاسبة في قواعد البيانات

عادة يتم تخزين اسم الحساب Name و رمز الحساب Code في حقلين منفصلين و يتم الرجوع الى الأب من خلال رمز الحسابو الذي يعتبر مفتاح أساسي
مثلا

اسم الحساب رمز الحساب
محمد 123

إذا الأب هو 12 سعيد
و الجد هو 1 عدنان

و لكن افترضنا جدلا أن رمز الحساب لكل واحد مؤلف من خانة واحدة، بالتالي يحق لكل حساب 10 أبناء فقط أو تسعة إذا رفضنا الصفر

اسم الحساب رمز الحساب
محمد 010203

هنا خانتين لكل اسم و كثير من البرامج المحاسبية تعتمد هذه المعالجة و تحدد عدد معين من الخانات لكل مستوى
و للأسف هذا أصبح قاعدة عند كل المبرمجين (عدا البعض)

أيضا يقومون بتخزين رمز الحساب في جدول اليومية
مثلا

القيمة رمز الحساب
1000 010203

أي أن علاقة جدول اليومية بجدول الحساب تتم عبر رمز الحساب وهو قيمة نصية string أي إن عملية استرجاع القيمة من

الجدول تتم من خلال البحث عن قيمة نصية، و حتى إذا استعملت أقوى قواعد البيانات فإن ذلك سيبطئ من سرعة التقارير.

إذا، يفضل إدخال مفتاح أساسي ذو طبيعة رقمية Integer و يعبر عنه ب ID أو AccID وهذا الحقل هو متزايد تلقائيا و فريد
طيب، كيف سنربط الحساب بأبيه؟
من خلال حقل آخر أيضا من نوع Integer نسميه مثلا AccParent لنرى ما حل بشجرتنا السابقة

Name Code AccParent AccID
عدنان 01 0 1
سعيد 0102 1 2
محمد 010203 2 3

و يمكن استعمال الحقل AccId في دفتر اليومية

القيمة AccID معرف الحساب
1000 3

كيف نجلب الشجرة
هناك عدة طرق و أبسطها
قم باستعلام عن الحسابات ذات الأب صفر أي بدون أب (يتيمة) AccParent=0
أثناء تعبئة الحسابات في Tree أو List أي عند كل إدراج لحساب في القائمة قم بالاستعلام عن أبناء هذا الحساب

AccParent=AccID

يفضل إنشاء تابع يقوم بالتعبئة مثلا FillChilds(0) و عند تعبئة كل حساب نقوم باستعداء نفس التابع و لكن للمعرف الحساب
المدرج مثلا FillChilds(AccId) وهكذا حلقة تعاودية
و لزيادة سرعة التعبئة قم بإنشاء فهرس على الحقل AccParent و من أجل سحب البيانات مرتبة حسب الاسم أنشئ هذا
الفهرس على الحقلين AccParent ثم Name

Advertisements
  1. لا توجد تعليقات حتى الأن.
  1. No trackbacks yet.

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s

%d مدونون معجبون بهذه: