السلام عليكم ...
انا مبتديء جدا في استخدام sql server واحاول بناء قاعده بيانات مصغره لنظام الاستعارة
لم أرغب بالسؤال الا بعد المحاوله الجادة لبناء القاعده والحمدلله نفذت الجداول والعلاقات واتمنى أن تكون صحيحة سوف ادرجها في المرفقات
واجهت صعوبه في تحديد مدة الاستعارة وكمية الكتب لكل عضو حسب نوع عضويته حيث ان هناك عضويتان عادية و ذهبية صاحب العضوية العادية يحصل على اسبوعين استعارة و5 كتب و صاحب العضويه الذهبية يحصل على 3 اسابيع استعارة و 10 كتب .
استخدمت هذا الكود للتحقق من عدد الكتب التي بحوزة اصاحب العضوية الذهبية (special)! لكن انا على اقتناع تماما انه خطأ وذلك لاني لم اعرف كيف احدد عضو معين لحساب كم عدد الكتب التي في حوزته ولكن كمحاولة !
declare @count int set @count = 0 while (@count <= 10) and membership_type='special' begin insert into borrowing values (8,399201,'2012-11-03'); insert into borrowing values (9,209479,'2012-10-05'); insert into borrowing values (10,540993,'2012-11-01'); end GO
وخطرت لي فكرة عند انشاء جدول الاستعارة الذي يحتوي رقم العضو و رقم الكتاب و تاريخ الاستعارة استخدام check لعدم تكرار رقم العضوالذي يحمل عضوية العادية لاكثر من 5 مرات والذي يحمل العضوية الذهبية لاكثر من عشر مرات ! ولكن لم استطيع تنفيذه !
كيف يمكن التأكد من ذلك أن كل عضو لم يستعير اكثر مما هو محدد ! واذا استعار اكثر مما هو مقيد به لا يتم قبول اضافة اي سجل جديد له !
كذلك عند حساب وقت ارجاع الكتب استخدمت هذا الكود الذي عمل صحيحا
UPDATE returning SET returning.#copy_no = borrowing.#copy_no,returning.#member_id = borrowing.#member_id,returning.borrowing_date=borrowing.borrowing_date, returning_date = DATEADD (week,3,borrowing.borrowing_date) FROM borrowing,member WHERE returning.#returning_no = borrowing.#borrowing_no and member.#membership_no = '1' ; UPDATE returning SET returning.#copy_no = borrowing.#copy_no,returning.#member_id = borrowing.#member_id,returning.borrowing_date=borrowing.borrowing_date, returning_date = DATEADD (week,2,borrowing.borrowing_date) FROM borrowing,member WHERE returning.#returning_no = borrowing.#borrowing_no and member.#membership_no = '2' ;
ولكن تظهر لي هذه الرساله (0 row(s) affected) !!
سوف ادرج الكود في المرفقات حتى تتضح الرؤية ..
أتمنى ان لا تبخلوا بتوجيهاتكم أخواني ..
قد يكون ما اسأل عنه سهل ممتنع ولكن كما قلت لكم بأن هذه اول محاوله لي للعمل على sql server ..