ASP.NET وإلى One-كثير إلى كثير من السيناريو
-
21-08-2019 - |
سؤال
وأنا جديدة على ASP.NET ولكن ليس في البرمجة. أنا المهاجرة موقعنا الحالي من PHP / ماي إلى ASP.NET (3.5) / SQLSERVER. لقد تم رصد وتقص هنا منذ إطلاق الموقع، لذلك أنا واثق من أن واحد (أو أكثر) من يمكنك مساعدتي. وإليك السيناريو:
وهذا هو موقع قسم التدريب وقسم. لديه كتالوج بالطبع المخزنة في course
الجدول. قد يكون لكل بالطبع العديد من المقررات الدراسية، على سبيل المثال، A و B هما شرطان أساسيان لC. I عادة تخزين هذه إما عمود بفواصل في course
أو في course_prereq
طاولة منفصلة أو course_course
كعلاقة متكررة. هذا الجزء يمكنني القيام به.
ولكن، تتطلب قواعد العمل التي كل دورة يمكن أن يكون مجموعات متعددة من الشروط. الصدارة سبيل المثال، N
يتطلب A
، B
وC
، أو N
يتطلب X
وY
. هذا هو المكان الذي أنا عالقة.
وفي السابق، وأنا تخزين هذه المعلومات في عمود للN
صف واحد كما A,B,C|X,Y
، تحليل معرفات في PHP 2D مصفوفة، قدم الاستعلام الثاني لجميع الصفوف التي كانت في ذلك مجموعة، PHP ثم تستخدم لفصل تلك الصفوف معرف في مجموعاتهم. وبمجرد الانتهاء من كل هذه المعالجة، يتم عرض مجموعة من الشروط المسبقة كما جداول منفصلة في صفحة الويب، كما يلي:
و| A | A's information goes here |
| B | B's information goes here |
| C | C's information goes here |
- - - - - - - OR - - - - - - - -
| X | X's information goes here |
| Y | Y's information goes here |
وكيف لي أن تحقيق ذلك ASP.NET باستخدام؟
المحلول
وإضافة جدول لعقد Prerequisite Sets
. يحمل هذا الجدول معرف مجموعة ومفتاح العودة الى طاولة المفاوضات دورات كل دورة في المجموعة. قد يكون الجدول عدة صفوف للحصول على معرف مجموعة معينة، لذلك المفتاح الأساسي الخاص بك وسوف يكون معرف مجموعة <م> زائد م> معرف بالطبع. ثم في الجدول course_prereq
بك أن تتصل دورات لمجموعات مسبق مختلفة. علاقة OR
يمكن افتراض هناك لأن يتم فرض أي AND
s في انفسهم من مجموعات.
نصائح أخرى
هل لديك جدول يسمى PrerequisiteSet أن FKS لكل متطلب. ثم يكون Course_PrerequisiteSet الكثيرين إلى طاولة الكثيرون أن FKS على ملعب وPrerequisiteSet. ومعظم الوقت يكون هناك سوى إدخال واحد في Course_PrerequistieSet، ولكن إذا كان هناك أكثر من واحد، بعد ذلك سوف تكون علاقة OR.
كل الإجابات أعلاه مفيدة جدا. انتهى بي الأمر فقط باستخدام جدول قاعدة بيانات واحدة بدلا من اثنين المقترحة. يحتوي الجدول على course_id
، prereq_id
، وset_id
، والتي تشكل معا المفتاح الأساسي.
في صفحة ASP.NET، يمكنني استخدام مكرر لحلقة على إجراء sqldatasource مخزن يقوم بإرجاع مجموعات مسبق دورة، ووgridview داخل هذا مكرر الذي يقرأ المعلومات المطلوبة مسبقا الفردية من إجراء مخزن sqldatasource الثاني. مثل هذا:
<اقتباس فقرة> وRepeaterSqlDataSource
(عوائد مجموعة هويات)
Repeater
. . . GridViewSqlDataSource
(بإرجاع معلومات بالطبع لكل prereq_id في مجموعة
. . . GridView
وهذا الأمل هو مفيد لأي شخص آخر يبحث في سيناريو مماثل.