صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 16

الموضوع: قاعدة البيانات أتعبتني نفسيا...ممكن رأيك؟

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Nov 2001
    المشاركات
    133

    قاعدة البيانات أتعبتني نفسيا...ممكن رأيك؟



    السلام عليكم ورحمة الله
    لدي صفحة في الانترنت عبارة عن تقرير ... يقوم بتعئبته حوالي 300 شخص 6 مرات في السنة الواحدة ... ولكن المشكلة كثرة الحقول ( 45 حقل ) أكثرها text ...
    1- هل من الممكن ان يتم هذا بدون أي ضرر على القاعدة مستقبلا بإذن الله ... وهل لديكم إقتراحات مفيدة لهذا الوضع ..
    2- بعض الحقول في التقرير عبارة عن ازارير خيار او إختيار ... ماذا سيقابلها في قاعدة البيانات... أقصد ماذا يجب أن يكون نوع الحقل ( int -text - varchar ... الخ )

    أرجو المساعدة ..وشكرا جزيلا





    __________________
    الحمدلله
    manager غير متواجد حالياً


  2. #2
    عضو فعال
    تاريخ التسجيل
    Feb 2002
    المشاركات
    1,247


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

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

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





    __________________
    ومامن كاتب إلا سيفنى ****** ويبقي الدهر ماكتبت يداه
    فلا تكتب بكفك غير شيء ****** يسرك يوم القيامة أن تراه
    Dr.Server غير متواجد حالياً

  3. #3
    عضو نشيط جدا
    تاريخ التسجيل
    Apr 2004
    المشاركات
    437


    اعتقد ان الأخ يتعامل مع قواعد البيانات وسؤاله عنها وليس الملفات النصية
    هل الحقول هذه في جدول واحد ام عدة جداول ؟
    يالنسبة لازرار الخيار فاكيد لها قيمة معينة غالبا ماتكون نعم او لا او رقم فاذا كانت بهذا الشكل خل نوعها char
    اتمنى لك التوفيق





    albdre غير متواجد حالياً

  4. #4
    عضو فعال
    تاريخ التسجيل
    Feb 2002
    المشاركات
    1,454


    1- لن يضرها اذا تم تصميم القاعدة بشكل صحيح
    2- بالنسبة للاختيارات تقدر تستخدم enum
    كود PHP:
    enum('1','2','3'...) 
    تحياتي لك





    __________________
    شبكة مملكة العرب
    ---------------------
    استضافة مواقع تبدأ من 100 ريال سنويا
    خطط خاصة للموزعين
    سكربت دليل المواقع
    www.aknet.com
    code4arab غير متواجد حالياً

  5. #5
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2003
    المشاركات
    821


    رد مقتبس من code4arab
    1- لن يضرها اذا تم تصميم القاعدة بشكل صحيح
    2- بالنسبة للاختيارات تقدر تستخدم enum
    كود PHP:
    enum('1','2','3'...) 
    تحياتي لك






    __________________
    www.abu3amer.com
    أبوعامر غير متواجد حالياً

  6. #6
    عضو نشيط
    تاريخ التسجيل
    Nov 2001
    المشاركات
    133


    أخواني Dr.Server - albdre - code4arab - أبوعامر
    شكرا على مداخلتكم ..طبعا أنا افضل ان اتعامل مع قواعد البيانات من التعامل مع ملفات نصية وهذا ما اسال عنه .. طبعا زر الخيار يحمل اسم مميز فماذا سيقابله في قاعدة البيانات إذا كان اسمه مثلا (name )
    سارفق قاعدة البيانات التي صممتها ( كمثال )+النموذج ارجو منكم نقدها وفحصها مع ملاحظة
    1- أنني لم اجعل معظم الحقول not null لأن تعئبتعا إختيارية .
    2- ألاسماء التي تبداء بـ visno عبارة عن ازارير خيار .option
    3- ألاسماء التي تبداء بـ active1 عبارة عن مربعات إختيار .check
    4- قاعدة البيانات عبارة عن جدولين وقمت بوضع حقل مشترك بينهما بسبب أنني أحتاج للاستعلام عن معلومات من الجدولين ...فهل ما قمت به صحيح أم ماذا؟ وما الحل ؟
    5- بصراحة لم أفهم هذه النقطة
    كود:
    enum('1','2','3'...)
    ( جديد في البرمجة )
    شاكر ومقدر تعاونكم ... وجزاكم الله كل خير





    الملفات المرفقة الملفات المرفقة
    • نوع الملف: zip rep.zip‏ (3.0 كيلوبايت, 57 مشاهدات)
    __________________
    الحمدلله
    manager غير متواجد حالياً

  7. #7
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2003
    المشاركات
    821


    للتسهيل ساضع الكود الذي وضعته انت هنا :

    كود PHP:

    create table trep 
    (
    id int unsigned not null auto_increment primary key,
    tid int(15not null,//رقم مميز لربط هذا الجدول مع الذي يليه
    visno text,
    vistm1 text ,
    vistm2 text ,
    vistm3 text ,
    item1 text,
    item2 text,
    item3 text,
    item4 text,
    item5 text,
    item6 text,
    item7 text,
    item8 text,
    notice1 varchar(250),
    useful varchar(250),
    works text,
    active1 text,
    active11 text,
    active2 text,
    active22 text,
    active3 text,
    active33 text,
    active4 text,
    active44 text,
    active5 text,
    active55 text,
    active6 text,
    active66 text,
    active7 text,
    active77 text,
    active8 text,
    active88 text,
    active9 text,
    active99 text,
    active10 text,
    active110 text,
    active1110 text,
    active11 text,
    active111 text,
    active1111 text,
    active12 text,
    active112 text,
    active1112 text,
    notice2 varchar(250)
    );
    //////////
    create table teahers (
    id int unsigned not null auto_increment primary key,
    tid int(15not null,//رقم مميز لربط هذا الجدول مع سابقه
    name varchar(40not null,
    sub varchar(40not null,
    school varchar(40not null,
    region varchar(20not null ,
    city varchar(20not null,
    super varchar(40not null
    date datetime NOT NULL 
    default '0000-00-00'
    ); 






    __________________
    www.abu3amer.com
    أبوعامر غير متواجد حالياً

  8. #8
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2003
    المشاركات
    821


    السلام عليكم
    لكي نفهم الفكرة لابد ان تشرح لنا عمل السكربت

    ثانيا : لم افهم الغرض من الحقل tid

    ثالثا : طبعا ها التصميم سيسبب بطئ + شغط في قواعد البيانات
    السبب ان الخيارات وضعتها text

    يعني اذا كان لديك خيارات محددة ( مثل الجنس : ذكر , انثى )
    فالافضل ان تستخدم نوع الحقل enum

    وسيكون كالتالي :

    كود PHP:
    CREATE TABLE  test  (  column  ENUM('ذكر','أنثى'NOT NULL ); 
    اذا كنت لاتحتاج ارقاما طويلة فاستخدم tinyint بدلا من Int او smallint

    وهكذا
    المقصود ان لاتستخدم حجما لاتستخدمه , لان ذلك يسبب في ثقل عمل القاعدة





    __________________
    www.abu3amer.com
    أبوعامر غير متواجد حالياً

  9. #9
    عضو نشيط
    تاريخ التسجيل
    Nov 2001
    المشاركات
    133


    شكرا جزيلا ابو عامر ...
    1- سيقوم 300 معلما 6 مرات في السنة الدراسية الواحدة بتعئبة هذا التقرير ومن ثم سيتم تخزينه في قاعدة بيانات ... سيطبق عليها بعض الاستعلامات .. بطرق مختلفة و سيتم طباعة ما نحتاجه من تقارير
    2- الحقل tid يعني رقم بطاقة المعلم ( سيستخدمها للدخول الى صفحة التقارير )
    3- الصورة رقم 1 سيتم تعئبها بعد دخول المعلم مباشرة برقم بطاقته من خلال بيانات الجدول teahers ( ساستخدم اما session أو الكوكيز لذلك ..تنصحوني بماذا؟ ولماذا؟)
    4- طبعا سيقوم المعلم بتعئبة بقية الاستمارة ( صورة رقم 2 )ومن ثم الضغط على زر الارسال ( الغيت زر استعراض التقرير )
    5- ما اريده فقط هو تقديم النصح بموضوع تصميم قاعدة البيانات الخاصة بالصورة الثانية ( طبعا الاستمارة أطول من كذا .. يمكنكم مشاهدة بقيتها من خلال الملف المرفق في الرد السابق ) ساقوم بإكمال بقية الاكواد بمشئية الله بعد أن أنتهي من تصميم قاعدة البيانات .. ولا استغني عن استشاراتكم.
    6- أيضا لم افهم موضوع enum كبف استخدمها في حالتي هذه ..هل ممكن إستخدامها مع زر الخيار مثلا ؟...وكيف؟
    اسف على كثرة تساؤلاتي ... طمعان في كرمكم ولكم الاجر إن شاء الله تعالى





    __________________
    الحمدلله
    manager غير متواجد حالياً

  10. #10
    عضو نشيط
    تاريخ التسجيل
    Nov 2001
    المشاركات
    133


    عفوا هذه هي الصور ..





    الصور المرفقة الصور المرفقة  
    __________________
    الحمدلله
    manager غير متواجد حالياً

  11. #11
    عضو نشيط
    تاريخ التسجيل
    Nov 2001
    المشاركات
    133


    وهذه الصورة 2





    الصور المرفقة الصور المرفقة  
    __________________
    الحمدلله
    manager غير متواجد حالياً

  12. #12
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2003
    المشاركات
    821


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

    اولا انصحك باستخدام الجلسات sissions لانها اكثر امانا

    اما بخصوص الenum وهي كما ان في النموذج الذي صممته توجد اختيارات (كبيرة , متوسطة , ضعيفه ) سيكون هناك في الحقل 3 خيارات (كبيرة,متوسطة,ضعيفة) ولن تقبل ادخال اي نتائج غيرها

    كود PHP:
    CREATE TABLE  test  (  column  ENUM('ضعيفة','متوسطة','كبيرة'NOT NULL ); 
    وسيكون شكلها كما في الصورة المرفقة :





    الصور المرفقة الصور المرفقة  
    __________________
    www.abu3amer.com
    أبوعامر غير متواجد حالياً

  13. #13
    عضو نشيط
    تاريخ التسجيل
    Nov 2001
    المشاركات
    133


    شكرا جزيلا ابو عامر ... على تحمل اسئلتي
    1- ما الفرق بين tinyint و Int ..( اين في قاعدة بياناتي أحتاجها)
    2- هل من الممكن الكتابة بالعربي في تصميم قاعدة البيانات مثال ENUM('ضعيفة','متوسطة','كبيرة')
    3- استخدمت في قاعدتي بياناتي التالي ( ENUM('ضعيفة','متوسطة','كبيرة')) وعنما قمت بتعئية الاستمارة كتجربة ... تم تعئبة الحقول ( Text و Checkbox ) أما ازارير الاوبشن التي استخدمتها مع (Enum ) فلم يتم تعئبتها ووجدتها فارغة في قاعدة البيانات ...فما السبب ؟ وهذا الكود الذي استخدمته لذلك...
    كود PHP:
    <?
    include("config.php");
    $q mysql_query("insert into trep (visno,vistm1,vistm2,vistm3,item1,item2,item3,item4,item5,item6,item7,item8,notice1,useful,works,active1,active11,active2,active22,active3,active33,active4,active44,active5,active55,active6,active66,active7,active77,active8,active88,active9,active99,active10,active110,active1110,active111,active1111,active11111,active12,active112,active1112,notice2) values
                                       ('
    $visno','$vistm1','$vistm2','$vistm3','$item1','$item2','$item3','$item4','$item5','$item6','$item7','$item8','$notice1','$useful','$works','$active1','$active11','$active2','$active22','$active3','$active33','$active4','$active44','$active5','$active55','$active6','$active66','$active7','$active77','$active8','$active88','$active9','$active99','$active10','$active110','$active1110','$active111','$active1111','$active11111','$active12','$active112','$active1112','$notice2')");
    echo
    "شكرا جزيلا .. تم إرسال التقرير";

    ?>
    4- هل استخدم Enum مع مربعات الاختيار checkbox ايضا ... أم لها طريقة اخرى...وشكرا جزيلا





    __________________
    الحمدلله
    manager غير متواجد حالياً

  14. #14
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2003
    المشاركات
    821


    شكرا جزيلا ابو عامر ... على تحمل اسئلتي
    العفو اخي الكريم هذا واجبنا
    1- ما الفرق بين tinyint و Int ..( اين في قاعدة بياناتي أحتاجها)
    الفرق هو الحجم الاستيعابي لكل منها
    وهنا ستجد جدولا يشرح الفرق بينها جميعا http://dev.mysql.com/doc/mysql/en/Numeric_types.html

    2- هل من الممكن الكتابة بالعربي في تصميم قاعدة البيانات مثال ENUM('ضعيفة','متوسطة','كبيرة')

    نعم ممكن
    3- استخدمت في قاعدتي بياناتي التالي ( ENUM('ضعيفة','متوسطة','كبيرة')) وعنما قمت بتعئية الاستمارة كتجربة ... تم تعئبة الحقول ( Text و Checkbox ) أما ازارير الاوبشن التي استخدمتها مع (Enum ) فلم يتم تعئبتها ووجدتها فارغة في قاعدة البيانات ...فما السبب ؟ وهذا الكود الذي استخدمته لذلك...


    قد يكون هناك خطأ في الكود البرمجي , وبالنسبة اذا استخدمت checkbox او radio botton او drop menu او اي اسلوب لادخال البيانات لايوجد هناك اي فرق بالنسبة لقاعدة البيانات ,
    قاعدة البيانات ليس لها اي علاقة باسلوب العرض في صفحتك البرمجية






    __________________
    www.abu3amer.com
    أبوعامر غير متواجد حالياً

  15. #15
    عضو نشيط
    تاريخ التسجيل
    Nov 2001
    المشاركات
    133


    الله يوفقك دنيا واخرة





    __________________
    الحمدلله
    manager غير متواجد حالياً





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

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