PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Model Django jeden klucz obcy do wielu tabel

Powinieneś użyć frameworka contenttypes w Django.

Oto przykład ogólnej relacji:https://docs.djangoproject.com/en/1.8/ref/contrib/contenttypes/#generic-relations Dla Twoich wymagań może to wyglądać mniej więcej tak:

from django.db import models
from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType

class Status(models.Model):
    request_type = models.ForeignKey(ContentType)
    request_id = models.PositiveIntegerField()
    request = GenericForeignKey('request_type', 'request_id')

Następnie możesz zrobić coś takiego:

status1 = Status(request=Request1("foo"))
status1.save()
status2 = Status(request=Request2("bar"))
status2.save()

status1.request // <Request1 "foo">
status2.request // <Request2 "bar">



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Powiadamianie o zmianach postgres w aplikacji java

  2. PostgreSQL utwórz tabelę, jeśli nie istnieje

  3. Jak zamienić tablicę json w wiersze w postgresie?

  4. Postgres właśnie losowo przestał działać (Rails, PGSQL.5432)

  5. Różnica między typem danych DECIMAL i NUMERIC w PSQL