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



همانطور که می بینید یک رابطه با استفاده از کلید خارجی بین دو جدول ایجاد شده است. ستون role_id را به جدول کاربر با استفاده از کلید خارجی اضافه شده است که باعث ایجاد این رابطه شده است. این ستون (role_id) به عنوان یکی از ستون های مدل کاربر و به عنوان یک ستون از نوع Integer ایجاد شده است و پارامتر db.ForeignKey اعلام می کند که این ستون کلید خارجی است که از جدول role خواهد آمد. 

حال برای اینکه بتوانیم لیست تمامی کاربرانی که یک نقش را دارند را بدست آوریم از مفهوم شی گرایی به عنوانdb.relationship() استفاده می کنیم. با اضافه کردن این ستون به مدل نقش کاربر امکان دسترسی به این اطلاعات مهیا خواهد شد. اولین پارامتری که به این تابع ارسال می کنیم، نام مدل دیگری است که در آن سوی این رابطه حضور دارد. علاوه بر این به عنوان دیگر پارامتر برای این تابع باید ستونی که نقش کلید خارجی را در آن سوی این رابطه دارد را مشخص کنیم. 

لیست پارامترهایی که برای اینگونه روابط می توان استفاده کرد عبارت است از : 



علاوه بر رابطه های یک به چند ما رابطه های دیگری نیز داریم که عبارت اند از :‌

۱. رابطه های یک به یک

۲. رابطه های چند به یک

۳. رابطه های چند به چند


تنها تفاوت در ایجاد رابطه های یک به یک با رابطه های یک به چند این است که باید در پارامترهای مربوط به تابع db.relationship()، پارامتر uselist را با false مقداردهی اولیه کنیم. در مورد رابطه های چند به چند نیز بعدا صحبت خواهیم کرد.