-
Notifications
You must be signed in to change notification settings - Fork 0
1.5.5 Relasi Database
Database relasional membuat koneksi antara baris dalam tabel yang berbeda. Pada app.py tambahkan kode berikut ini:
# app.py: menambahkan relasi
class Role(db.Model):
...
users = db.relationship('User', backref='role')
class User(db.Model):
...
role_id = db.Column(db.Integer, db.ForeignKey('roles.id')
...Ini adalah hubungan satu-ke-banyak dari role ke user, karena satu role dapat memiliki banyak user, tetapi setiap user hanya dapat memiliki satu peran. Hubungan antara dua tabel tersebut dihubungkan oleh foreign key. Kolom role_id yang ditambahkan ke User didefinisikan sebagai foreign key.
| Nama | Deskripsi |
|---|---|
backref |
Mengembalikkan referensi dalam model yang berhubungan |
primaryjoin |
Menentukan kondisi antara kedua model secara eksplisit. Ini diperlukan hanya untuk hubungan yang ambigu. |
lazy |
Tentukan bagaimana item terkait dimuat. Nilai yang mungkin dipilih (item dimuat menuntut saat pertama kali diakses), langsung (item dimuat ketika objek sumber adalah dimuat), bergabung (item dimuat segera, tetapi sebagai gabungan), subquery (item dimuat segera, tetapi sebagai subquery), noload (item tidak pernah dimuat), dan dinamis (bukan memuat item, kueri yang dapat memuatnya diberikan). |
uselist |
Jika disetel ke False, gunakan skalar dari pada List. |
order_by |
Menentukan urutan list dalam model |
secondary |
Menentukan tabel asosiasi untuk hubungan banyak ke banyak |
secondaryjoin |
Menentukan tabel asosiasi untuk hubungan banyak ke banyak saat SQLAlchemy tidak dapat menentukan dirinya sendiri |
Ada jenis hubungan lain selain satu ke banyak. Hubungan one-to-many dapat diekspresikan dengan cara yang sama dengan hubungan satu-ke-banyak. Hubungan many-to-one juga dapat dinyatakan sebagai hubungan satu-ke-banyak jika tabel dibalik, atau dapat diekspresikan dengan kunci asing dan definisi db.relationship() baik pada sisi "banyak". Itu tipe hubungan paling kompleks, many-to-many, memerlukan tabel tambahan yang disebut asosiasi.
Referensi :
- Miguel Grinberg - Flask Web Development, Developing Web Applications with Python