كيف يمكنني أن يكون عمود في قاعدة بيانات MySQL وظيفة لأعمدة أخرى؟

StackOverflow https://stackoverflow.com/questions/1225197

  •  22-07-2019
  •  | 
  •  

سؤال

أنا أعمل مع قاعدة بيانات تتتبع مكان وجود القارئ في الكتاب.أفعل ذلك من خلال وجود عمود لعدد الصفحات وعمود للصفحة الحالية.

هل هناك طريقة لإضافة عمود "التقدم" الذي سيكون مساوياً لـ (الصفحة الحالية/عدد الصفحات)؟

هل كانت مفيدة؟

المحلول

لديك خيارين. يمكنك إما إنشاء هذا المجال على SELECT:

SELECT book_id, user_id, (currentpage/pagecount) AS progress FROM user_books;

وأو إنشاء VIEW، والتي سوف تسمح لك الاستعلام من دون يحدد صراحة العملية:

CREATE VIEW user_books_progress AS
  (SELECT book_id, user_id, (currentpage/pagecount) AS progress FROM user_books);

وبعد ذلك يمكنك فقط الاستعلام وجهة نظركم كجدول العادي:

SELECT book_id, user_id, progress FROM user_books_progress;

وتتوفر المزيد من المعلومات حول المعاملات الحسابية والمشاهدات في وثائق:

<اقتباس فقرة>   

11.5.1: مشغلي الحسابية < br> و    12.1.12. CREATE VIEW بناء الجملة

نصائح أخرى

لا يمكنك تحديد عمود ليكون دالة.هناك حلان على الأقل لهذا:

  • قم بتحديث عمود التقدم الخاص بك باستخدام مشغل "قبل التحديث"، وستحتاج إلى مشغل "قبل الإدراج" أيضًا.
  • استخدم طريقة عرض تحسب عمود التقدم نيابةً عنك.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top