13

ماهو الاسلوب الذى تتبعه لتقوم بعمل تعديل لموضوع يرتبط بجدول tags ؟؟

هناك مشكلة تواجهنى دائماً فى عمل جدول قاعدة بيانات من أجل الـ tags و المشكلة التى تواجهنى هى فى عملية تحديث التاجز

بفرض أنك لديك مقاله و موضوع لها 20 تاج

لديك جدول topics و جدول tags و يحتوى الأخير على row لكل tag

----------------------------------------
topic_id | topic_title
----------------------------------------
1    | title 1
2    | title 2
----------------------------------------



----------------------------------------
tag_id | tag_topic_id | tag_text
----------------------------------------
1      | 1        | tag_1
2      | 1        | tag_2
3      | 1        | tag_3
4      | 2        | tag_4
5      | 2        | tag_5
----------------------------------------

عند عمل edit لل topic هل تقوم بعمل 20 إستعلام فى قاعدة البيانات لتعمل check على كل تاج هل هو جديد , هل هو محذوف ؟

الطريقة التى أعمل بها هى حذف الكلمات الدلالية الحالية كلها و إضافة الجديده Delete_all_tags_for_topic(x) insert_tags_for_topic(x,tags)

ولكن ذلك يؤثر على ال خانة ال tag_id حيث لا يكون ال auto_increment الخاص بها به ارقام مفقوده كثيرة

كما أضطر فى غالب الأمر إلى وضع حد أقصى من الكلمات الدلالية


13

أقترح عمل ثلاث جداول ..

TOPIC : topic_id, topic_title

TAG: tag_id, tag_text

T_TAGS: topic_id, tag_id

بحيث عند تعديل التاجز يمكنك ببساطة حذف كل التاجز المتعلقة بالـ topic

بشكل عام ستكون المشكلة في تعقيد عملية الإدخال .. ولكن قاعدة البيانات بهذا الشكل تحقق الهدف من كونها قاعدة بيانات بشكل أكبر ..