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

ما هي أفضل طريقة لحفظ بيانات نصية كبيرة مثل محتوى كتاب

بدأه gasmin في 28 يونيو 2008 · 13 رد · 4,733 مشاهدة · في قواعد بيانات MySQL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم :

أود تخزين محتوى كتاب كامل فماهي الطريقة الأفضل , هل أقوم بتخزينها ضمن الداتا بيس أم أضعها ضمن ملف وأخزن مسار هذا الملف ضمن الداتا بيس .

وإذا كنت أريد القيام بالبحث عن كلمة ضمن هذا النص فماهي الطريقة الأفضل والأسرع (الحفظ ضمن الداتابيس أم الملف)

وجزاكم الله خيرا

#2

على حسب نظامك.

إذا كنت تريد البحث ضمن هذا الكتاب والقيام بعمليات عديدة مثل التحرير والإضافة عليه فالداتا بيز هي الحل المناسب

أما إذا كنت تملك كتب كثيرة وتريد نظام لتحميل الكتب أي مكتبة لتحميل الكتب فالأفضل هو تخزين مسار الكتب في الداتا بيز (مع بعض المعلومات الإضافية مثل اسسم الكتاب ونوعه) وتخزين الكتب على الهارد

#3

شكرا لك يا أخ خالد :

أنا الذي أريده أدخال عدة كتب لكي تعرض على شكل صفحات html وطبعا أريد القيام بعمليات الحذف والتعديل والإضافة .

ولكن النقطة المهمة هنا أن حجم الكتب كبير أي ممكن أن تقول ان عدد صفحات الكتاب الواحد تتراوح مابين 800 إلى 1000 صفحة أو أكثر , على هذه الحالة الداتا بيس سوف يكون حجمها كبير جدا ,

والنقطة الثانية التي لم أجد لها حلا هي كيف يمكنني القيام بعملية بحث على كلمة ضمن نص الكتاب بدون أن تستغرق زمنا طويلا .

أشكر لك مشاركتك

#4

انتظر بعض الوقت حتى أحضر لك تفصيلاً كاملاً بإذن الله ... فأنا الأن مشغول بعض الشيء

#5

أولاً نسيت أن اسألك هل التطبيق سيستخدمه مستخدم واحد أم عدة مستخدمين

أي الكتاب سيتم قراءته من قبل عدة مستخدمين في اللحظة نفسها أم مستخدم واحد فقط

#6

أظنه الخيار الثاني أخي خالد .

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#7

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

1- التخزين على الهارد:

أسوأ شيء هو عند طلب عدة مستخدمين لنفس الكتاب مما يؤدي إلى إرهاق الهارد ... والحل هو استخدام التفرع ... أي وضع عدة نسخ للمكتبة على عدة سيرفرات ... وإعادة توجيه المستخدمين للمخدم الأقل انشغالاً ... طبعاً تكلفتها عالية ولكن أداؤها عالي ... وعليك حفظ مسار الكتاب في قاعدة البيانات طبعاً

2- التخزين على الداتا بيز كـ blob:

المشكلة هي ثقل الداتا بيز بعد فترة بسبب كبر حجمها وهنا عليك استخدام clustering طبعاً ستحتاج لشخص ملم بهذا الأمر حتى يستطيع عمل ذلك

سأطرح الموضوع مع تفصيل أكثر في سكربت المكتبة العربية

#8

فكرة التخزين على الهارد وإعادة التوجيه فكرة منطقية جداً .... ولكن مشكلتها عند القيام بالتعديل على النص والمشكلة الأكبر هي البحث ؟؟؟؟؟

أما بالنسبة للداتابيس فهي أفضل من ناحية التعديل ولكن كما قلت هذا سيؤدي إلى ثقل حجمها وخاصة انني لا أعلم شيئا عن clustering ....

وبالنسبة للبحث فقد نصحني شخص بأن أقوم بتخزين كل كلمة من النص ضمن خلية أي إنشاء جدول فقط لحفظ محتوى الكتاب بحيث كل كلمة تشكل record ... وبهذا تصبح عملية الإندكس أفضل من أجل البحث ...... وصراحة لم أجد هذه الطريقة عملية خاصة من أجل التعديل .....

مازلت أبحث عن حل ملائم

وأرجو التوفيق لي ولكم

#9

طرحت هذا الموضوع في منتدى الخبراء ونحن نتناقش به

#10

جزاكم الله خيراً

#11

السلام عليكم :

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

وشيء أخر في حال إدخال النص كاملاً إلى الداتا بيس فهل طريقة ال index بواسطة fulltext تعتبر طريقة جيدة للبحث , وفي حال استخدامها فأي الطرق أختار لل fulltext ...

وشكراً جزيلا لكم..

وجزاكم الله خيراً ...

#12

السلام عليكم

أفضل شيء للبحث هو استخدام fulltext خاصة انك تتكلم عن نصوص كثيرة ومع ان هناك بعض القصور في اللغة العربية الا انها تبقى افضل من الطرق العادية . في MSSQL هناك امكانية لتخزين الملفات والبحث بداخلها بواسطة Full-text من ضمن الملفات DOC PDF HTML TXT لكن لا اعرف عن امكانيات MySQL

#13

اشكر جميع الأخوة الذين شاركوا :

اما بالنسبة للشي الي قمت به أخيراً , كمثال صغيرقمت بإدخال القرآن الكريم من أجل البحث وأنشأت fulltext عليه ثم قمت بالبحث كما يلي :

SELECT * FROM `table-name` WHERE MATCH (field-name) AGAINST ('word*' IN BOOLEAN MODE )

والحمد لله تم البحث بسرعة لابأس بها , ولكن هنا اعترضتني مشكلة أرجو ممن يجد لها حلاً أن يزودني به :

هذه التعليمة لاتقبل بداية غير معرفة للكلمة أي '*word*' .

أرجو المساعدة وجزاكم الله خيراً

#14

بسم الله الرحمن الرحيم:

أخواني الأعزاء لدي نفس المشكلة حيث لدي موقع به أرشيف كبير جدأ و يمكن للمتصفحين أن يبحثوا على كلمة ما ضمن الداتا بيز أي عملية select على الداتا بيز

فكيف يمكنني زيادة السرعة في البحث و التصفح

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

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

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

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

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