تعریف ارتباط بین دو کلاس در فایل models.py


#1

سعی کردم یه وبلاگ ساده با استفاده از django بسازم.
یه کلاس به اسم Post داریم و یه کلاس دیگه به اسم Tag یا Category (تو فایل models.py).
هر پست تو وبلاگ میتونه چندتا موضوع داشته باشه و هر موضوعی میتونه به چندتا پست نسبت داده بشه.
من ارتباط بین این دو تا رو اینجور تعریف کردم:

وارد وبسایت که میشم، همه چیز طبق انتظار پیش میره و در ظاهر مشکلی وجود نداره.
آیا کار من درسته؟ یا بهتره رابطه بین این دو تا رو جور دیگه ای تعریف کنم؟


#2

درست بنظر میاد اما schema رو هم بزار لطفا


#3

فعلاً اینجوریه، ولی هرچی بیشتر آپشن اضافه میکنم بیشتر شبیه یه شبکۀ اجتماعی میشه و از حالت وبلاگ خارج میشه:
Capture


#4

یکم غیر عادی بنظر میاد, مثلا رابطه categories با پست معلوم نیست


#5

رابطۀ کلاس Post و کلاس Category از نوع n-n هست، چون زیاد با جدولها و پایگاه داده آشنایی ندارم، نکشیدم. یه field تو کلاس Post گذاشتم به اسم categories که وقتی کسی بخواد پستی رو تو وبلاگ منتشر کنه، بتونه از این طریق Category های مربوط به اون پست هم تعیین کنه یا یک یا چنتا Category جدید اضافه کنه.


#6

یعنی یک join table بینشون وجود داره احتمالا


#7

آره، این joint table رو گویا خود django ایجاد میکنه… تنها چیزی که من احتیاج دارم دسترسی به پست ها از طریق موضوع ها، و برعکس دسترسی به موضوع ها از طریق پست ها هست، که اینم انجام دادم. این نوع ارتباط درسته؟ یا رابطۀ بین یه پست و موضوع های مربوط به اون پست رو معمولاً جور دیگه ای تعریف میکنن؟