نظام الرواتب تصميم منطق الأعمال في SPs أو طبقة التطبيق (C#.Net) ، والصيانة - بعد ثانية

StackOverflow https://stackoverflow.com/questions/209770

سؤال

نحن تصميم الرواتب جيل نظام عميل.

المنظمة نستهدف التسلسل الهرمي على النحو التالي:الشركة -> المجموعات> وحدة الأعمال (بو) -> قسم> الموظف

الراتب للموظف تتكون من مختلف مكونات الأجر.كل راتب مكون من 3 القواعد المرتبطة به ، القاعدة على حساب (حساب مكون من مكون آخر ، أو ٪ من عدد محدد أو عدد محدد) ، الأهلية المادة (سواء كان موظف/Dept هي مؤهلة للحصول على مكون) و قيدا القاعدة مما يحد ثا max و min مكون.

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

لدينا قاعدة بيانات التي الحضور والأوراق المكافآت الجداول و هذه القواعد هي أيضا من المفترض أن تتفاعل مع هذه الجداول.

العميل سيتم توليد الرواتب لعدة عملاء كل استضافة قاعدة بيانات منفصلة سبيل المثال.قد يكون لكل منها تفسير مختلف كل عنصر و قد مكونات مختلفة.

نحن نبحث فقط إلى دعم SQL Server و الرواتب الجيل سوف يكون غير متصل النشاط.

نحن منقسمون على مكان وضع المنطق الذي يستخدم هذه القواعد لتوليد الضريبة الفردية مكونات (والتي سوف تشمل تخفيضات ضريبية شطب ضريبة العلاوات ، إلخ).

يدعو بعض الناس السحر SPs والتي سوف تأخذ معرف الموظف وتوليد الرواتب لهذا الشهر.والبعض الآخر يريد المنطق إلى تقسيمها إلى مكونات منفصلة التي سوف تحصل على البيانات التي تعتمد على موظف في طبقة التطبيق وحساب هذه العناصر هناك.

ترتيب أولوياتنا هي:1.القدرة على التكيف مع التغييرات إلى عملاء جدد بسرعة 2.على المدى الطويل الصيانة 3.الأداء

1 و 2 تفوق 3 هنا عامل كبير لأن هذا سوف يكون غير متصل النشاط.

الصيانة و سريعة التفصيل مهم جدا, نحن سيتم نشر طلب العملاء المختلفة.العميل قد يكون راتب عنصر القاعدة ((0.3 * الأساسية) + 800) العميل ب (0.2 * الأساسية) + (0.1 * Atendance مكافأة)

سوف واص يسبب الفوضى هنا ، كما أن القواعد المقترحة أعلاه سوف تكون محددة من قبل المستخدم النهائي و سوف تحتاج إلى أن تكون قابلة للتخصيص من خلال واجهة المستخدم على شبكة الإنترنت.سيكون لدينا تحليل الصيغ من SQL.مدى صعوبة أو سهولة سيكون ؟ ما الميزة سوف تفعل هذا في طبقة التطبيق (C# .صافي) لها أكثر من استخدام SPs ؟

آخر الأصلي هنا:تصميم تلميحات ، نظام الرواتب بعد ثانية... لكن أيا من الأسئلة أجاب بشكل صحيح.

اقتراحات ومؤشرات إلى النظم القائمة' العمارة سوف تكون مفيدة جدا.و نعم نحن باستخدام LINQ to SQL في أي مكان آخر في النظام.

مع أطيب التحيات ، اشيش شارما

هل كانت مفيدة؟

المحلول

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

نصائح أخرى

إذا قمت بتخزين الصيغ كما في المثال JEP (java) انها ليست مشكلة كبيرة.فقط الحفاظ على الصيغة الكاملة كسلسلة:أنا.هـ:"الدفع=((0.3 * الأساسية) + 800) ثم تحليل ذلك إلى شجرة.

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

بلدي sugestion:

  • يبقيه في سلسلة ، في قاعدة البيانات
  • جعل مكتبة صغيرة على التقييم و محلل.
  • تحليل ذلك إلى شجرة ثنائية.(مثل '+' يشير إلى 800 و يشير أيضا إلى '') ثم ''نقطة 'الأساسية' و '0.3'
  • بعد ذلك تحتاج فقط بسيطة الدالة على حلها.

إذا تعقيد هذه الصيغ لا يمكنك القيام بذلك في أي جانب تريد كما انها لن تأخذ لك الكثير من الوقت لمعالجة ذلك.

إذا كنت تبحث عن .صافي حل تقييم صيغة ممثلة في سلاسل هنا هو مادة ممتازة تفاصيل باستخدام ANTLR و C# لإنشاء حساب المحرك.هناك وظيفية بالكامل صيغة المترجم أن يوزع السلاسل ، تبني "أنصار الشريعة" ، ثم تقييم التعبير.بالإضافة إلى محرك حساب يتم تنفيذها باستخدام الزائر نمط, حتى إذا كان لديك الوظائف التي ترغب في إجراء مثل قاعدة بيانات عمليات البحث يمكنك دمج بسهولة التخصيص إلى الحل الخاص بك.

هل سمعت من Relection أو المندوبين ؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top