sql - نماذج جانغو:الحصول على قائمة الهوية




django django-models (3)

كيف يمكنني الحصول على قائمة بكافة مفاتيح الهوية / المفتاح الأساسي لجدول. قل لدي هذا الجدول:

class Blog(models.Model)
  title = models.CharField()
  body = models.CharField()
  author = models.ForeignKey(Author)

تفترض أن مؤلف الحقل هو كائن مؤلف. أريد الحصول على جميع معرفات Blog حيث المؤلف = المؤلف

أنا أعلم أنني يمكن استخدامها

    blogs = Blog.objects.filter(author=author)

والحصول على جميع كائنات بلوق في شكل قائمة ، ولكن كيف يمكنني الحصول على قائمة IDS / PK؟ المشابهة لـ "Select id from Blog where Author = author"


Answers

Blog.objects.filter(author=author).values_list('id', flat=True)

values_list() قائمة بالصفوف ، كل صف مجموعة من جميع الحقول التي تحددها كوسيطة ، بالترتيب. إذا قمت بتمرير حقل واحد فقط كوسيطة ، فيمكنك أيضًا تحديد flat=True للحصول على قائمة بسيطة بدلاً من قائمة المجموعات.



لفهم ما هي قاعدة البيانات الموجهة للعمود ، من الأفضل أن تتناقض مع قاعدة البيانات الموجهة للصفوف.

قواعد البيانات الموجهة نحو الصف (على سبيل المثال MS SQL Server و SQLite) تم تصميمها لإرجاع البيانات بشكل كامل لصف بأكمله. يفعل ذلك عن طريق تخزين جميع قيم الأعمدة من الصف معا. قواعد البيانات الموجهة نحو الصفوف مناسبة تمامًا لأنظمة OLTP (على سبيل المثال ، مبيعات التجزئة وأنظمة المعاملات المالية).

تم تصميم قواعد البيانات الموجهة للعمود لإرجاع البيانات بكفاءة لعدد محدود من الأعمدة. يفعل ذلك عن طريق تخزين جميع قيم العمود معا. هناك قاعدتا بيانات موجهتان على نطاق واسع هما: Apache Hbase و Google BigTable (تستخدمهما Google للبحث ، والتحليلات ، والخرائط ، و Gmail). وهي مناسبة لمشاريع البيانات الكبيرة. سوف تتفوق قاعدة البيانات الموجهة للعمود في عمليات القراءة على عدد محدود من الأعمدة ، إلا أن عملية الكتابة ستكون مكلفة مقارنة بقواعد البيانات الموجهة للصفوف.

لمزيد من المعلومات: https://en.wikipedia.org/wiki/Column-oriented_DBMS





sql django django-models