تخزين معرفات الموظفين المتعددة في عمود واحد من البيانات
-
09-09-2019 - |
سؤال
يتم كتابة تطبيق الويب في الكلاسيكية ASP باستخدام MSSQL Backend. في هذه الصفحة بالذات، يمكن للمسؤول تحديد 1 أو أي / جميع الموظفين لتعيين المشروع ل. أحاول معرفة طريقة بسيطة لتخزين معرفات الموظفين للأشخاص المعينين به في عمود واحد.
يتم إنشاء قائمة الموظفين من طاولة أخرى ويمكن أن تكون ديناميكية (إطلاق أو توظيف) لذلك أريد أن يكون البرنامج مرنا بما يكفي للتغيير بناء على تغييرات الجدول هذه.
بحاجة أساسا إلى معرفة كيفية تعيين أشخاص متعددين إلى مشروع يمكن استدعاء لاحقا على صفحة مختلفة أو من استفسار مختلف.
آسف لسؤال N00Bish، ولكن شكرا!
المحلول
تحتاج إلى إنشاء جدول آخر يخزن هذه القيم مثل. لذلك سيخزن هذا الجدول الجديد صف واحد لكل معرف، ثم يربط إلى السجل الأصلي مع معرف السجلات الأصلية.
نصائح أخرى
لا تخزن معرف متعدد في عمود واحد! قم بإنشاء جدول آخر مع المفتاح الأساسي لجدولك الحالي ومعرف واحد تريد تخزينه. يمكنك بعد ذلك إدراج صفوف متعددة في الجدول الجديد، مما يؤدي إلى علاقة 1: م (واحد إلى العديد). على سبيل المثال، دعونا نلقي نظرة على جدول الطلب:
order:
order_id
order_date
ولدي طاولة منتج ...
product:
product_id
product_name
الآن، يمكنك النزول في طريق إضافة عمود إلى أمر يتيح لك سرد المنتجات بالترتيب، ولكن هذا سيكون شكل سيء. ما تريد بدلا من ذلك هو شيء مثل ..
order_item:
order_item_id
order_id
product_id
quantity
unit_price
يمكنك بعد ذلك إجراء انضمام للحصول على جميع المنتجات لترتيب معين ...
select
product.*
from orders
inner join order_item on order_item.order_id = order.order_id
inner join product on product.product_id = order_item.product_id
where orders.order_id = 5
إليك مثال أمر من 5، وهذا سيحصل على جميع المنتجات بكل هذا الطلب.