[Racket] Ferti hydroponic nutrient solver, redux.
Add uniqueness and coherency checks for nutrient value sets.
db/migrations.rkt
@@ -67,7 +67,27 @@
67
67
#:on-delete #:cascade)
68
68
(foreign-key fertilizer_product_id
69
69
#:references (fertilizer_products id)
70
Removed:
#:on-delete #:cascade))
70
Added:
#:on-delete #:cascade)
71
Added:
(unique nutrient_measurement_id)
72
Added:
(unique nutrient_target_id)
73
Added:
(unique crop_requirement_id)
74
Added:
(unique fertilizer_product_id)
75
Added:
(check (or (and (is-not-null nutrient_measurement_id)
76
Added:
(is-null nutrient_target_id)
77
Added:
(is-null crop_requirement_id)
78
Added:
(is-null fertilizer_product_id))
79
Added:
(and (is-null nutrient_measurement_id)
80
Added:
(is-not-null nutrient_target_id)
81
Added:
(is-null crop_requirement_id)
82
Added:
(is-null fertilizer_product_id))
83
Added:
(and (is-null nutrient_measurement_id)
84
Added:
(is-null nutrient_target_id)
85
Added:
(is-not-null crop_requirement_id)
86
Added:
(is-null fertilizer_product_id))
87
Added:
(and (is-null nutrient_measurement_id)
88
Added:
(is-null nutrient_target_id)
89
Added:
(is-null crop_requirement_id)
90
Added:
(is-not-null fertilizer_product_id)))))
71
91
"CREATE INDEX IF NOT EXISTS idx_nvs_meas ON nutrient_value_sets(nutrient_measurement_id)"
72
92
"CREATE INDEX IF NOT EXISTS idx_nvs_targ ON nutrient_value_sets(nutrient_target_id)"
73
93
"CREATE INDEX IF NOT EXISTS idx_nvs_crop ON nutrient_value_sets(crop_requirement_id)"