التسعير على أساس الصيغة.التخزين في RDBMS واستخدامه في طبقة التطبيق

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

سؤال

أنا على وشك الدخول في المراحل الأولى من تصميم تطبيق لتداول السلع.تتمثل الوظيفة الرئيسية لهذا التطبيق في التقاط معلومات التسعير وتقييمها.الأسعار في هذا السوق ليست ثابتة.وعادة ما يكون معيار السوق +/- علاوة.على سبيل المثال:(أ و ب هما معايير السوق)

  • السعر = أ + 1 دولار
  • السعر = أ + .5(أ-ب)

يتم حساب السعر النهائي للصفقة باستخدام صيغة التسعير المطبقة خلال فترة زمنية متفق عليها.على سبيل المثال؛قد يكون السعر النهائي هو متوسط ​​A + 1 دولار خلال الأسبوع السابق والأسبوع التالي لتحميل السلعة.

في الوقت الحاضر، يقوم المتداولون بالتقاط هذه التفاصيل في برنامج Excel مما يتيح لهم المرونة في إعداد الصيغ المطلوبة، ولكن هذه المعلومات لا تصل أبدًا إلى أنظمتنا المحاسبية ولا ترتبط جداول البيانات بالتنبؤات المباشرة لمعايير السوق مما يجعل التنبؤ بالأسعار دليلاً و مهمة بطيئة.

أنا أبحث عن مدخلات بشأن الأدوات/التقنيات التي يمكنني استخدامها لإدخال الصيغ وتخزينها وتقييمها في التطبيق.

سنستخدم SQL Server أو Oracle كقاعدة بيانات ولم يتم إصلاح النظام الأساسي للعميل بعد، ولكن يمكنك افتراض WinForms/WPF أو ASP.NET أو Java webapp.

أعلم أن هذا سؤال واسع جدًا، لكننا لسنا بعيدين بما يكفي لنكون أكثر تحديدًا بشأن التقنيات التي سيتم استخدامها.

شكرًا

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

المحلول

أراهن أن مستخدميك يحبون مرونة إدخال الصيغ في Excel، لذلك أقترح أسلوبًا مثل هذا: -

  1. اكتب شيئًا للسماح لهم بإدخال الصيغ في تطبيقك باستخدام نوع العوامل التي سيستخدمونها بالفعل مع الكلمات الرئيسية للأسعار الأساسية المختلفة.يمكن فقط تخزين هذا بعيدًا كسلسلة.
  2. تحقق من صحة ذلك باستخدام أسلوب القائمة البيضاء (قد يكون الأمر صعبًا إلى حد ما، ربما ستحتاج إلى البحث عن بعض خوارزميات التحليل المستندة إلى المكدس).قد تسمح بما يلي:+ - / * ( ) {الثوابت الرقمية} {الكلمات الرئيسية للأسعار الأساسية}.
  3. قم بترجمة هذه الصيغ إلى شيء يمكن لقاعدة البيانات الخاصة بك فهمه في قائمة SELECT.إذا كانت الصيغ التي يدخلونها مشابهة لما يمكنك فعله في SQL، فقد لا يكون ذلك صعبًا للغاية.يتم تحويل الكلمات الرئيسية إلى أسماء أعمدة ويمكن ترك كل شيء آخر بمفرده.

بعد ذلك، ستتمكن من تحديد البيانات مرة أخرى، وحساب المتوسط ​​على مدار الفترات الزمنية، وما إلى ذلك عن طريق توصيل النموذج الخاص وتشغيله على بياناتك و/أو تنبؤاتك التاريخية.

تحتوي الخطوة الثانية على بعض الحيل، لكنها ستجعل كل شيء آخر سهلًا (وفعالًا).

نصائح أخرى

هل فكرت في التكامل مع Excel؟وبهذه الطريقة لن تضطر إلى محاولة إخراج برنامج Excel من براثنهم (مستخدمو الأعمال أعشق Excel)، ويمكنهم استخدام جميع الحيل التي تعلموها على مر السنين.ما عليك سوى نقل البيانات ذهابًا وإيابًا بين تطبيقك وExcel باستخدام VBA (أو على أية حال يطلبون من الأشخاص التكامل مع Excel هذه الأيام) ومن الجيد جدًا البدء.

لدي حل بسيط يبعث على السخرية يتعلق باقتراح هانك.قم بإنشاء قاعدة بيانات وقم بتصميمها وفقًا لجداول Excel الخاصة بك.تصدير بيانات Excel واستيرادها إلى قاعدة البيانات الخاصة بك.قم بإنشاء موصلات ODBC على الأجهزة العميلة للإشارة إلى قاعدة البيانات.في Excel، يمكنك الاتصال بمصادر البيانات.بهذه الطريقة، لن يواجه عملاؤك أي مشاكل مع تغييرات واجهة المستخدم.

سيناريو مثير للاهتمام.تحذير:تعتمد هذه الاستجابة على بعض الأفكار التي كانت لدي للتعامل مع المشكلة وقد لا تعكس أفضل الممارسات.

سأحاول معرفة ما إذا كان بإمكانك تلخيص قواعد الصيغة المحتملة الخاصة بك إلى بنيات أبسط.سيسمح لك هذا بعد ذلك بتكوين قواعدك معًا لإنشاء صيغ معقدة.ستحتاج بعد ذلك إلى أن تكون قادرًا على تخزين القواعد داخل قاعدة البيانات، وهو ما يمكن إجراؤه باستخدام إما ملف DSL أو بعض ملفات قواعد XML.

يبدو أن السيناريو الحالي الخاص بك، الصيغة في برنامج Excel، يعمل بشكل جيد إلى حد ما ولكن به بعض العوائق.هل فكرت في استخدام بعض وحدات الماكرو المتقدمة أو أتمتة Excel؟ربما يمكنك تحقيق معظم أهدافك دون أن يضطر عملاؤك إلى ترك برنامج Excel.

حظ سعيد.

إذا كانت البيانات من مصدر موثوق به (إذا كان كبيرًا)، فيمكنك تخزين تعبيرات قاعدة البيانات في عمود ثم إنشاء عبارة SELECT بسرعة لتنفيذها.

يمكنك استخدام حزمة الرياضيات الرمزية مثل جيناC من أجل تفسير الصيغ التي تدخلها في الجداول.

شكرا على الردود.

يريد المستخدمون أنفسهم الابتعاد عن Excel.إنهم يتقاتلون مع العديد من المستخدمين الذين يحاولون إدخال البيانات وتحديثها.قد أقوم بالتحقيق في الخيارات التي توفرها VSTO لتضمين أوراق Excel الصغيرة في التطبيقات.

أنا أميل إلى استخدام "لغة" مضمنة لتخزين وتقييم الصيغ.

من المحتمل أن يكون استخدام محلل بسيط لتحويل الصيغ المدخلة إلى SQL فكرة معقولة لأن المتغيرات في المعادلات هي متجهات سلاسل زمنية وليست نقاط بيانات عددية ويجب أن يسهل نهج SQL حساب النتائج خلال الفترات الزمنية المطلوبة.

شكرًا

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