การเพิ่มฟิลด์ให้กับความสัมพันธ์ ManyToMany Django ORM

ดังนั้นฉันจึงสร้างฐานข้อมูลที่ฉันจำเป็นต้องมีฟิลด์ที่เกี่ยวข้องกับความสัมพันธ์ ManyToMany เฉพาะ แต่ฉันไม่รู้ว่าจะแปลสิ่งนี้เป็น Django ORM ได้อย่างไร ตัวอย่างเช่น ฉันมี บทความ หลายรายการที่สามารถใช้ร่วมกับ สิ่งพิมพ์ ได้หลายรายการ แต่ฉันต้องการดูว่าบทความใดมีผู้เข้าชมมากที่สุด

ฉันคิดว่าฉันสามารถสร้างฐานข้อมูลได้ดังนี้:

+------------+--------+--------+-------+
| art_pub_id | art_id | pub_id | views |
+------------+--------+--------+-------+
| 101        | 201    | 301    | 6     |
+------------+--------+--------+-------+
| 102        | 201    | 302    | 4     |
+------------+--------+--------+-------+
| 103        | 202    | 301    | 8     |
+------------+--------+--------+-------+

หรือฉันทำสิ่งนี้ได้

+------------+--------+--------+
| art_pub_id | art_id | pub_id |
+------------+--------+--------+
| 101        | 201    | 301    |
+------------+--------+--------+
| 102        | 201    | 302    |
+------------+--------+--------+
| 103        | 202    | 301    |
+------------+--------+--------+

+----+------------+-------+
| pk | art_pub_id | views |
+----+------------+-------+
| 1  | 101        | 6     |
+----+------------+-------+
| 2  | 102        | 4     |
+----+------------+-------+
| 3  | 103        | 8     |
+----+------------+-------+

ฉันกำลังดิ้นรนกับวิธีการแปลสิ่งนี้เป็น Django ORM ฉันมีบทความที่มี ManyToManyField ชี้ไปที่สิ่งพิมพ์ แต่ฉันไม่รู้ว่าจะวางมุมมอง IntegerField ไว้ที่ไหนหรืออย่างไร ฉันได้ลองใช้คลาส Publication_Article ที่มีฟิลด์ ManyToMany สองฟิลด์และฟิลด์มุมมองของฉัน แต่ฉันไม่แน่ใจว่านั่นเป็นวิธีที่ถูกต้องที่จะทำ

ฉันยังตระหนักดีว่าฉันอาจประสบปัญหากับการออกแบบฐานข้อมูลของฉันอย่างไม่ถูกต้อง ซึ่งในกรณีนี้การรู้วิธีที่ดีที่สุดในการทำเช่นนี้จะมีค่าสำหรับฉัน


person Logan Waite    schedule 26.04.2017    source แหล่งที่มา
comment
คุณคุ้นเคยกับความสามารถ manyToMany Through หรือไม่ หากจำนวนการดูคือจำนวนการดูสำหรับบทความ X เมื่อแสดงในสิ่งพิมพ์ Y นั่นก็ดูเหมือนจะสมเหตุสมผลที่สุด   -  person Foon    schedule 27.04.2017
comment
@Foon ฉันไม่ได้ แต่หลังจากอ่านเอกสารแล้ว (เดาว่าฉันจะต้องละเอียดมากขึ้นเมื่อผ่านครั้งแรก) ดูเหมือนว่านั่นคือสิ่งที่ฉันจะมองหา   -  person Logan Waite    schedule 27.04.2017
comment
@LoganWaite บางทีคุณอาจสนใจอ่านเกี่ยวกับเรื่องนี้ในคำถามนี้ stackoverflow.com/questions/3368442/   -  person Angel F    schedule 27.04.2017