Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để sử dụng Django với các bảng cơ sở dữ liệu chỉ đọc kế thừa với các khóa chính tổng hợp?

Khi đó, bạn đang nói về một cơ sở dữ liệu SN SÀNG kế thừa, có lẽ bạn có thể tạo một lược đồ bên ngoài (các khung nhìn) mà không có PK nhiều cột. Ví dụ, bạn có thể nối các khóa trường. Đây và ví dụ:

Ví dụ:

Bảng:

create table A (
  a1 int not null,
  a2 int not null,
  t1 varchar(100),
  primary key (a1, a2)
)

create table B (
  b1 int not null,
  b2 int not null,
  a1 int not null,
  a2 int not null,
  t1 varchar(100),
  primary key (b1, b2),
  constraint b_2_a foreign key (a1,a2) 
  references A (a1, a2)
)

Lược đồ bên ngoài được django đọc:

Create view vA as 
select 
   a1* 1000000 + a2 as a, A.* 
from A

Create view vB as 
select 
   b1* 1000000 + b2 as b, 
   a1* 1000000 + a2 as a, B.* 
from B

mô hình django:

class A(models.Model):
    a = models.IntegerField(  primary_key=True )
    a1 = ...
    class Meta(CommonInfo.Meta):
        db_table = 'vA'    

class B(models.Model):
    b = models.IntegerField(  primary_key=True )
    b1 = ...
    a = models.ForeignKey( A )
    a1 = ...
    class Meta(CommonInfo.Meta):
        db_table = 'vB'    

Bạn có thể tinh chỉnh kỹ thuật để tạo các khóa varchar để có thể hoạt động với các chỉ mục . Tôi không viết thêm mẫu vì tôi không biết thương hiệu cơ sở dữ liệu của bạn là gì.

Thông tin thêm:

Do Django mô hình hỗ trợ khóa chính nhiều cột?

vé 373

Phương pháp thay thế




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tạo hai cột tăng tự động trong MySQL?

  2. Đo thời gian trực tuyến trên trang web

  3. MySQL, cập nhật nhiều bảng với một truy vấn

  4. Cấu trúc lại một cơ sở dữ liệu xấu với các vòng lặp PHP hoặc MySQL

  5. Làm cách nào để lưu trữ kết quả truy vấn MySQL trong Bảng khác?