summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2010-12-27 10:36:57 +0000
committerTed Trask <ttrask01@yahoo.com>2010-12-27 10:36:57 +0000
commitf010c96d1412ae0b748b70e8acb17b067499724f (patch)
tree06b1411637d67bae644fca2b0749c0a56bca4d7a
parentd05f55050411072f054a785f0b1a6f578662ef30 (diff)
downloadacf-provisioning-f010c96d1412ae0b748b70e8acb17b067499724f.tar.bz2
acf-provisioning-f010c96d1412ae0b748b70e8acb17b067499724f.tar.xz
Added some unique indexes to enforce proper uniqueness
-rw-r--r--provisioning-model.lua4
1 files changed, 3 insertions, 1 deletions
diff --git a/provisioning-model.lua b/provisioning-model.lua
index 143fdc9..8356f93 100644
--- a/provisioning-model.lua
+++ b/provisioning-model.lua
@@ -86,6 +86,7 @@ local table_creation_scripts = {
"CREATE INDEX g2p_group_idx ON param_groups_to_params (group_id)",
"CREATE INDEX g2p_param_idx ON param_groups_to_params (param_id)",
"CREATE INDEX g2p_editable_idx ON param_groups_to_params (editable)",
+ "CREATE UNIQUE INDEX g2p_group_param_idx ON param_groups_to_params (group_id, param_id)",
},
-- List of each parameter used in any way for any device - mostly for how to display
provisioning_params = {
@@ -99,7 +100,7 @@ local table_creation_scripts = {
"CREATE INDEX values_device_idx ON provisioning_values (device_id)",
"CREATE INDEX values_group_idx ON provisioning_values (group_name)",
"CREATE INDEX values_param_idx ON provisioning_values (param_id)",
- "CREATE INDEX values_device_group_param_idx ON provisioning_values (device_id, group_name, param_id)",
+ "CREATE UNIQUE INDEX values_device_group_param_idx ON provisioning_values (device_id, group_name, param_id)",
-- Need to enforce that group_name is a valid name in provisioning_groups (cannot use foreign key because name is not unique in provisioning_groups)
-- Better yet, we'll check for a valid combination of device, group, and param (using triggers)
-- Theoretically should also check on updates and updates of devices, groups, or parameters, but not going to bother
@@ -118,6 +119,7 @@ local table_creation_scripts = {
provisioning_options = {
"CREATE TABLE provisioning_options (param_id INTEGER REFERENCES provisioning_params, label VARCHAR(255), value VARCHAR(255), seq INTEGER)",
"CREATE INDEX options_param_idx ON provisioning_options (param_id)",
+ "CREATE UNIQUE INDEX options_param_label_idx ON provisioning_options (param_id, label)",
},
}