diff options
author | Ted Trask <ttrask01@yahoo.com> | 2010-12-27 10:36:57 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2010-12-27 10:36:57 +0000 |
commit | f010c96d1412ae0b748b70e8acb17b067499724f (patch) | |
tree | 06b1411637d67bae644fca2b0749c0a56bca4d7a | |
parent | d05f55050411072f054a785f0b1a6f578662ef30 (diff) | |
download | acf-provisioning-f010c96d1412ae0b748b70e8acb17b067499724f.tar.bz2 acf-provisioning-f010c96d1412ae0b748b70e8acb17b067499724f.tar.xz |
Added some unique indexes to enforce proper uniqueness
-rw-r--r-- | provisioning-model.lua | 4 |
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)", }, } |