الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن منع تكرار اسم المستخدم في ثلاث جداول

بدأه niceo في 21 ديسمبر 2010 · 2 رد · 627 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

اخواني لدي سؤال كالتالي

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

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

حاولت ان استخدم الوراثة في جدول اساسي اسمه المستخدمين وارث منه ثلاث جداول(ثلاث انواع من المستخدمين)

لكن اعتقد انه سيتطلب عمل اكثر بالاضافة الى انني لم اجرب ذلك من قبل

لذا اتمنى الاجابة منكم

وشكرا

#2

السلام عليكم ورحمة اغلله تعالى وبركاته

اخي اضنه يفي بالغرض قم ببنلء 3 trigger بالفرنسية و declancher و كما هو معروف ان trigger يكونمرتبط ب جدول وحيد فقط لدا اعمل 3 كل واحد مرتبط بالجدول و تقوم بعمل فقط في حالة اضافة بالبيانات تم تقوم بعمل teste هل هل هدا الاسم موجود في الجدولين الباقيين ادا كان موجود تعمل rollback لا تقوم بعمل commit

سيكون الشكل العام كالاتي

create trigger nameoftrigger

on table_base

for insert

as

begin

if existe ( select table_1.name from table_1 , inserted where table_1.nam=inserted.name) and existe ( select table_2.name from table_2 , inserted where table_2.nam=inserted.name) ù

begin

print 'Error'

Rollback

end

end

#3

شكرا rara على ردك واجابتك

وفعلا قد يكون الحل الاوضح والانسب

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…