Django 一對一關係

2021-09-19 16:37:45 字數 1251 閱讀 5390

在django 中實現 一對一關係。

要定義一對一關係,請使用onetoonefield。

在這個例子中,乙個地方可以是餐廳:

from django.db import models

# 工作地點

class

place

(models.model)

:# 名稱

name = models.charfield(max_length=50)

# 位址

address = models.charfield(max_length=80)

def__str__

(self)

:return

"%s the place"

% self.name

class

restaurant

(models.model)

:# 餐館,它既是外來鍵,又是主鍵

place = models.onetoonefield(

place,

on_delete=models.cascade,

primary_key=

true,)

# **啥啥啥。

serves_hot_dogs = models.booleanfield(default=

false

) serves_pizza = models.booleanfield(default=

false

)def

__str__

(self)

:return

"%s the restaurant"

% self.place.name

class

waiter

(models.model)

:# 餐館是一對多關係。

restaurant = models.foreignkey(restaurant, on_delete=models.cascade)

name = models.charfield(max_length=50)

def__str__

(self)

:return

"%s the waiter at %s"

%(self.name, self.restaurant)

總體給人的感覺有點像繼承,就像餐館繼承於地點。

總的來說,就像使用者管理中,有不同的使用者角色有不同的許可權,可以基本user。一對一產生其他角色。

一對一關係

1 共享主鍵方式 共享主鍵方式就是限制兩個資料表的主鍵使用相同的值,通過主鍵形成一對一的對映關係。如 學員的登入帳號資訊和學員的詳細分別存放到兩張不同的表中。表 持久化類 public class student public class stupwd student.hbm.xml cascade...

一對一關係對映

主鍵關聯 兩個關聯的實體在表中具有相同的主鍵值,這個主鍵可只由其中乙個表生成,在另外乙個表中通過對映檔案中使用主鍵的foreign生成機制引用已經生成的主鍵值。student類 public class student public void setcard card card public stu...

一對一關係對映

兩端都需要配置 onetoone,但需要對映外來鍵維護關係的一端,額外新增 joincolumn 屬性。含有主鍵的一方預設是立即載入機制,但可以通過fetch 屬性調整,但是沒有主鍵的一端,無論如何更改fetch,都是立即載入,會額外傳送一條查詢語句。原因是,含有外來鍵的一方可以根據外來鍵判斷是否為...