[英]Django models and primary-foreign key relationships
我正在編寫一個Django應用程序,它使用現有的遺留數據以及表和關系的重新映射。 我已經獲得了一個包含表之間主要 - 外鍵關系的表,但是我很難理解如何使它適應Django模型。
例如,表country_metrics
定義為
+-------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| ContractNum | varchar(10) | NO | | NULL | |
| fips | varchar(5) | NO | | NULL | |
| metric_id | int(10) | NO | | NULL | |
| time_id | int(10) | NO | | NULL | |
| value | decimal(12,3) | NO | | NULL | |
| eff_date | date | NO | | NULL | |
| exp_date | date | YES | | NULL | |
+-------------+---------------+------+-----+---------+-------+
我已經獲得了一個關系映射
ContractNum primary key, foreign key references table contracts
fips primary key, foreign key references table country
metric_id primary key, foreign key references table metrics
time_id primary key, foreign key references table time
它是在課堂上建模的
class ContractCountyMetrics(models.Model):
contractnum = models.CharField(max_length=10L, db_column='ContractNum', primary_key = true) # Field name made lowercase.
fips = models.CharField(max_length=5L)
metric_id = models.IntegerField()
time_id = models.IntegerField()
value = models.DecimalField(max_digits=14, decimal_places=3)
eff_date = models.DateField()
exp_date = models.DateField(null=True, blank=True)
contractKey = models.ForeignKey(Contracts)
fipsKey = models.ForeignKey(Counties)
metricKey = models.ForeignKey(Metrics)
timeKey = models.ForeignKey(Time)
class Meta:
db_table = 'txn_contract_county_metrics'
unique_together("contractKey", "fipsKey", "metricKey", "timeKey")
根據我的閱讀, unique_together
基本上模擬了一個復合鍵,並允許多個字段具有主鍵功能。 我是在正確的軌道上嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.