فاديا جميل نشر 18 أكتوبر 2021 أرسل تقرير نشر 18 أكتوبر 2021 لدي جدول طلبيات البيتزا وكل طلبية لها حالة status فما هو أفضل تمثيل لها كنمط بيانات في الجدول pizza_orders id : int(11) PK location: varchar(255) quantity: int(2) status : ????????? حيث لدي عدة حالات مثل استلام - قيد التوصيل - قيد الطهي - في الانتظار.. 1 اقتباس
1 Wael Aljamal نشر 18 أكتوبر 2021 أرسل تقرير نشر 18 أكتوبر 2021 الأفضل هو عمل جدول منفصل للحالة، يحوي حقلين، هما معرف الحالة والقيمة الاسمية للحالة، أي جدول يعمل ك lookup table ويأخذ الحقل status في جدول الطلبيات القيمة tiny int، يمكن عمل الربط عن طريق المفتاح الثانوي، ولكن الأفضل عدم عمل ربط أثناء الاستعلامات، بل جلب القيم واستبدالها لاحقاً في صفحة الويب أو التطبيق لكي نحسن من الأداء في قاعدة البيانات. tiny int لتوفير مساحة التخيزين، جدول الحالات ك lookup table يمكن استعمال مفهوم العرض view لتركيب استعلام معقد حسب الحالة لديك. status_table status_id | status name 0 pending 1 cooking 2 delevering 3 delevered 1 اقتباس
0 شرف الدين حفني نشر 18 أكتوبر 2021 أرسل تقرير نشر 18 أكتوبر 2021 الأفضل دائماً وأبداً أن تختار نوع البيانات الأقل في المساحة التخزينية, لأن ذلك أولاً سيحفظ بعض المساحة لدى قاعدة البيانات, بالإضافة لزيادة سرعة إستقبال البيانات من قاعدة البيانات, بالإضافة إلى إمكانية الحصول على فهرسة أقل في المساحة بما أن الحالة لها قيم محددة (discrete values) فإذاً من المُفضل إختيار نوع البيانات عددي بدلاً من نصي, لأن الأعداد أقل مساحةً من النصوص, ويمكنك إختيار نوع بيانات عددي صغير نسبياً مثل ال tinyint والtinyint عبارة عن نوع بيانات عددي صحيح يحمل بيانات فقط تتراوح من القيمة 0 حتى 255 ومساحته التخزينية عبارة عن 1 بايت (1byte) وتكون طريقة التخزين كالتالي, نعطي كل حالة رقم معين, مثلاً الإستﻻم نعطيها الرقم 1, قيد التوصيل نعطيه الرقم2 , قيد الطهي الرقم 3 وهكذا, وبدلاً من تخزين الحالات كنصوص نقوم بتخزينها كأرقام 1 اقتباس
0 Ahmed Sharshar نشر 18 أكتوبر 2021 أرسل تقرير نشر 18 أكتوبر 2021 من أجل توفير المساحة وتحسين الأداء، يجب اختيار الشكل الأمثل للبيانات الذي يكون دقيقا على حجم البيانات التي تريد ادخالها. هنا في status توجد لديك عدة حالات منها استلام - قيد التوصيل - قيد الطهي - في الانتظار وغيرها..، وهنا يعتمد شكل البيانات على طريقة استخدامك لهذة الطرق وهناك طريقتين: اما ان تكون البيانات بداخلها نصا، مثلا "نعم" أو "لا" وهكذا، حينها يجب أن تكون البيانات من نوع Varchar. أما اذا قررت استخدامها ك 0 و 1، بحيث تعني 0 "لا" وتعني 1 "نعم" ، حنها يمكنك اما استخدام int أو tinyint . 1 اقتباس
السؤال
فاديا جميل
لدي جدول طلبيات البيتزا وكل طلبية لها حالة status فما هو أفضل تمثيل لها كنمط بيانات في الجدول
pizza_orders id : int(11) PK location: varchar(255) quantity: int(2) status : ?????????
حيث لدي عدة حالات مثل استلام - قيد التوصيل - قيد الطهي - في الانتظار..
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.