Osama Kha نشر 4 مارس 2023 أرسل تقرير نشر 4 مارس 2023 اريد حجز خانة او خانتين لمتحول من نوع integer $table->tinyInteger('price'); 4digte $table->Integer('price',2); 11 digte عند استخدام الصيغة التالية لا يقوم بتحديد الطول بشكل دقيق عند فتح phpmyadmin 1 اقتباس
0 Adnane Kadri نشر 4 مارس 2023 أرسل تقرير نشر 4 مارس 2023 إذا كنت تريد تخزين عدد صحيح مكون من رقمين حصرا وبمجال مفتوح قد يحتوي على أصفار بادئة ("01" أو "09" مثلا)، فيجب عليك استخدام عمود VARCHAR بدلاً من الاستعانة بـ tinyInteger او smallinteger لأن كل منهما يقوم بإنشاء عمودين TINYINT و SMALLINT على التوالي، وهما ما لا يخدمان الغرض الذي لديك. $table->string('price', 2); لأن TINYINT والذي يعتبر الأقل يقبل تخزين أعداد من سالب 127 الى 127 معينة و من 0 الى 255 غير معينة. 1 اقتباس
0 Mustafa Suleiman نشر 4 مارس 2023 أرسل تقرير نشر 4 مارس 2023 في Laravel، يمكنك استخدام خاصية length لتحديد الحجم الذي تريد استخدامه لحقل integer. ولكن، هناك بعض الاختلافات بين أحجام الأعداد المسموح بها للأنواع المختلفة من الحقول. tinyInteger يستخدم لتعريف عمود رقمي صغير يمكنه تخزين القيم بين -128 و +127، ويحتوي على 1 بايت فقط (8 بت). integer فهو يستخدم لتعريف عمود رقمي أكبر يمكنه تخزين القيم بين -2147483648 و +2147483647، ويحتوي على 4 بايتات (32 بت). بالتالي، إذا كان العدد الذي تريد تخزينه في العمود صغيرًا، يمكنك استخدام tinyInteger لتوفير مساحة في قاعدة البيانات، وإذا كان العدد كبيرًا، فيمكن استخدام integer. يجب ملاحظة أنه في حالة عدم تحديد عدد الأرقام في العمود، فإن Laravel سيستخدم الإعدادات الافتراضية لقاعدة البيانات التي يتم استخدامها. يمكن استخدام $table->string('price', 2) لتحديد حجم الحقل، لكن هذا يعتمد على نوع البيانات التي تريد تخزينها في هذا الحقل. عادةً ما يتم استخدام الأنواع الرقمية مثل tinyInteger و integer لتخزين الأرقام الصحيحة، مثل الأسعار والكميات والعمر وما إلى ذلك. وعند استخدام أنواع الأرقام الصحيحة، من المفترض أن يكون لديك قيمة رقمية تريد تخزينها، وليس قيمة نصية. على الجانب الآخر، تستخدم الأنواع النصية مثل string لتخزين البيانات النصية مثل الأسماء والأسماء الأولى والعناوين والبريد الإلكتروني وما إلى ذلك. وفي حالة تحديد طول الحقل باستخدام string ، يتم تحديد عدد الأحرف التي يمكن أن يحتوي عليها النص في هذا الحقل. لذلك، يمكن استخدام string لتخزين الأرقام الصحيحة ذات الطول الصغير مثل price ، ولكن يتم استخدام الأنواع الرقمية مثل tinyInteger و integer للأرقام الصحيحة ذات الطول الكبير. إذا كنت تريد استخدام حقل tinyInteger، يمكنك تحديد الطول بالتالي: $table->tinyInteger('price', 4); تمثل القيمة الثانية الحد الأقصى لعدد الأرقام المسموح بها في هذا الحقل. إذا كنت تريد استخدام حقل integer، يمكنك تحديد الطول بالتالي: $table->integer('price', 11); تمثل القيمة الثانية الحد الأقصى لعدد الأرقام المسموح بها في هذا الحقل. ومع ذلك، يجب الانتباه إلى أن هذه القيم لا تحدد الحد الأقصى للأعداد التي يمكن حفظها في الحقل. بدلاً من ذلك، فإنها تحدد العدد الأقصى للأرقام التي يمكن عرضها عند عرض الحقل في أدوات الإدارة مثل phpMyAdmin. لحفظ أي رقم في الحقل، يجب التأكد من أن الرقم لا يتجاوز الحد الأقصى للحقل. علاوة على ذلك، يمكن تخصيص الخاصية unsigned لجعل الحقل موجباً فقط. يتم ذلك بإضافة unsigned() في نهاية تعريف الحقل، على النحو التالي: $table->integer('price', 11)->unsigned(); وبمجرد تحديد الحجم الصحيح للحقل، يمكن استخدامه بشكل عادي في التطبيق Laravel الخاص بك. 1 اقتباس
0 Osama Kha نشر 4 مارس 2023 الكاتب أرسل تقرير نشر 4 مارس 2023 هل من الصحيح وضع النوع string بالنسبة للسعر على سبيل المثال ممكن وضع xxبدل من 01وهذا غير منطقي اقتباس
0 Mustafa Suleiman نشر 4 مارس 2023 أرسل تقرير نشر 4 مارس 2023 بتاريخ الآن قال Osama Kha: هل من الصحيح وضع النوع string بالنسبة للسعر على سبيل المثال ممكن وضع xxبدل من 01وهذا غير منطقي لا، من الأفضل عدم استخدام النوع string لحفظ السعر. لأن السعر يجب أن يكون رقماً، وليس نصاً. إذا تم حفظ السعر كنص، فسيكون من الصعب إجراء عمليات حسابية عليه، مثل الجمع والطرح والقسمة والضرب. كما أن استخدام النوع string سيسبب مشاكل أخرى، مثل الصعوبة في البحث والترتيب حسب السعر. على سبيل المثال، إذا كان السعر مخزناً كنص، فلا يمكن ترتيب البيانات حسب السعر بالترتيب الصحيح. لذلك، الأفضل استخدام أنواع البيانات المخصصة للأرقام، مثل الأنواع المذكورة في الإجابة التي وضعتها لك، بحيث يكون من السهل القيام بالعمليات الحسابية والترتيب والبحث. 1 اقتباس
0 Osama Kha نشر 4 مارس 2023 الكاتب أرسل تقرير نشر 4 مارس 2023 اي لايمكن تحديد طول محدد من قبل صاحب العمل كماذكرت حضرتك انه اصغر نوع هو tinyinteger اي لايوجد طريقة للتعامل مع عدد محدد لان $table->integer('price', 11); هذه الطريقة لاتعمل لقد قمت ب تجربتها لكن الصف integer يقبل بارامتر من النوع التالي اقتباس
0 Mustafa Suleiman نشر 4 مارس 2023 أرسل تقرير نشر 4 مارس 2023 بتاريخ 7 دقائق مضت قال Osama Kha: اي لايمكن تحديد طول محدد من قبل صاحب العمل كماذكرت حضرتك انه اصغر نوع هو tinyinteger اي لايوجد طريقة للتعامل مع عدد محدد لان $table->integer('price', 11); هذه الطريقة لاتعمل لقد قمت ب تجربتها لكن الصف integer يقبل بارامتر من النوع التالي يمكن تحديد الطول المطلوب لحقل integer في Laravel، ولكنه لا يقبل البارامتر الذي تم ذكره في السؤال: $table->integer('price', 11); في Laravel، يمكن استخدام الدالة integer لتحديد حقل من نوع integer، وتحديد الطول المطلوب في البارامتر الثاني، على سبيل المثال: $table->integer('price', 4); // سينشئ حقل من نوع int(4) لاحظ أن القيمة المحددة في البارامتر الثاني تمثل الطول الإجمالي للحقل، وليس عدد الأرقام التي يمكن أن يحتويها الحقل. الطول الإجمالي يشير في قاعدة البيانات إلى عدد الأحرف أو الأرقام الذي يمكن أن يحتوي عليه الحقل. على سبيل المثال، إذا كانت لدينا خانة في قاعدة البيانات مخصصة للأسماء وأردنا تحديد طول الأسماء التي يمكن إدخالها في هذه الخانة، فيمكننا تحديد الطول الإجمالي لهذا الحقل. وبناءً على هذا الطول الإجمالي، يتم تحديد حجم الحقل في قاعدة البيانات الخاصة به. لاحظ أنه في الكود الخاص بك تستخدم $table->string('os', 2000) هذا الكود ينشئ عمودًا في جدول قاعدة البيانات باسم price من نوع string، ويحدد الطول الأقصى للعمود بقيمة 2000 حرف. يعني أن العمود يمكن أن يحتوي على أي مجموعة من الأحرف والأرقام بطول يصل إلى 2000 حرف، ويتم تخزين البيانات في هذا العمود في شكل سلسلة نصية (String). وهذا يستخدم عادةً في حالة تخزين البيانات النصية طويلة مثل وصف المنتجات أو الرسائل الإخبارية. ومن الممكن استخدام نفس الطريقة مع الدالة tinyInteger، حيث يتم تحديد الطول المطلوب في البارامتر الوحيد للدالة: $table->tinyInteger('price', 4); // سينشئ حقل من نوع tinyint(4) لاحظ أن القيمة المحددة في البارامتر الوحيد للدالة تمثل الطول الإجمالي للحقل أيضًا. ويجب التنويه إلى أن استخدام الحقل من نوع string لحفظ القيم الرقمية غير مناسب وغير مستحسن، حيث أن هذا يؤدي إلى زيادة حجم قاعدة البيانات وإضافة تعقيدات في البحث عن القيم وترتيبها. 1 اقتباس
السؤال
Osama Kha
اريد حجز خانة او خانتين لمتحول من نوع integer
$table->tinyInteger('price'); 4digte $table->Integer('price',2); 11 digte
عند استخدام الصيغة التالية لا يقوم بتحديد الطول بشكل دقيق عند فتح phpmyadmin
6 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.