Target PostgreSQL schema — 10 tables across 8 subject areas. Synthetic schema for portfolio purposes.
erDiagram
CULTIVARS ||--o{ LICENCES : "licensed under"
CULTIVARS ||--o{ BLOCKS : "planted as"
CULTIVARS ||--o{ NURSERY_ORDERS : "ordered as"
CULTIVARS ||--o{ IMPORT_EXPORT_PERMITS : "moved under"
STAKEHOLDERS ||--o{ LICENCES : "holds"
STAKEHOLDERS ||--o{ BLOCKS : "manages"
STAKEHOLDERS ||--o{ NURSERY_ORDERS : "places"
LICENCES ||--o{ ROYALTY_CONTRACTS : "governs"
ROYALTY_CONTRACTS ||--o{ ROYALTY_TRANSACTIONS : "settles"
BLOCKS ||--o{ PATHOLOGY_TESTS : "tested via"
BLOCKS ||--o{ QUARANTINE_RECORDS : "quarantined via"
IMPORT_EXPORT_PERMITS ||--o{ QUARANTINE_RECORDS : "requires"
CULTIVARS {
int cultivar_id PK
string cultivar_name
string species
string plant_type
string release_status
}
STAKEHOLDERS {
int stakeholder_id PK
string stakeholder_name
string stakeholder_type
string region
}
LICENCES {
int licence_id PK
int cultivar_id FK
int stakeholder_id FK
string licence_type
string status
}
BLOCKS {
int block_id PK
int cultivar_id FK
int stakeholder_id FK
string block_type
string block_status
}
PATHOLOGY_TESTS {
int test_id PK
int block_id FK
string test_type
string result
}
ROYALTY_CONTRACTS {
int contract_id PK
int licence_id FK
numeric royalty_rate
string calculation_basis
}
ROYALTY_TRANSACTIONS {
int transaction_id PK
int contract_id FK
numeric amount_due
string payment_status
}
NURSERY_ORDERS {
int order_id PK
int cultivar_id FK
int stakeholder_id FK
string order_status
}
IMPORT_EXPORT_PERMITS {
int permit_id PK
int cultivar_id FK
string direction
string permit_status
}
QUARANTINE_RECORDS {
int quarantine_id PK
int permit_id FK
int block_id FK
string clearance_status
}