كيف يمكنني أن يكون عمود في قاعدة بيانات MySQL وظيفة لأعمدة أخرى؟
سؤال
أنا أعمل مع قاعدة بيانات تتتبع مكان وجود القارئ في الكتاب.أفعل ذلك من خلال وجود عمود لعدد الصفحات وعمود للصفحة الحالية.
هل هناك طريقة لإضافة عمود "التقدم" الذي سيكون مساوياً لـ (الصفحة الحالية/عدد الصفحات)؟
المحلول
لديك خيارين. يمكنك إما إنشاء هذا المجال على 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 بناء الجملة
اقتباس فقرة>نصائح أخرى
لا يمكنك تحديد عمود ليكون دالة.هناك حلان على الأقل لهذا:
- قم بتحديث عمود التقدم الخاص بك باستخدام مشغل "قبل التحديث"، وستحتاج إلى مشغل "قبل الإدراج" أيضًا.
- استخدم طريقة عرض تحسب عمود التقدم نيابةً عنك.
لا تنتمي إلى StackOverflow