1 -- Object store tables. 2 3 create table objects ( 4 store_user varchar not null, 5 object_uid varchar not null, 6 object_text varchar not null, 7 status varchar not null, -- 'active', 'cancelled' 8 primary key(store_user, object_uid) 9 ); 10 11 create table countered_objects ( 12 store_user varchar not null, 13 other varchar not null, 14 object_uid varchar not null, 15 object_text varchar not null, 16 primary key(store_user, object_uid) 17 ); 18 19 create table recurrences ( 20 store_user varchar not null, 21 object_uid varchar not null, 22 object_recurrenceid varchar not null, 23 object_text varchar not null, 24 status varchar not null, -- 'active', 'cancelled' 25 primary key(store_user, object_uid, object_recurrenceid) 26 ); 27 28 create table countered_recurrences ( 29 store_user varchar not null, 30 other varchar not null, 31 object_uid varchar not null, 32 object_recurrenceid varchar not null, 33 object_text varchar not null, 34 primary key(store_user, object_uid, object_recurrenceid) 35 ); 36 37 -- Object store free/busy details. 38 39 create table freebusy ( 40 store_user varchar not null, 41 "start" varchar not null, 42 "end" varchar not null, 43 object_uid varchar, 44 transp varchar, 45 object_recurrenceid varchar, 46 summary varchar, 47 organiser varchar, 48 expires varchar 49 ); 50 51 create index freebusy_start on freebusy(store_user, "start"); 52 create index freebusy_end on freebusy(store_user, "end"); 53 54 create table freebusy_offers ( 55 store_user varchar not null, 56 "start" varchar not null, 57 "end" varchar not null, 58 object_uid varchar, 59 transp varchar, 60 object_recurrenceid varchar, 61 summary varchar, 62 organiser varchar, 63 expires varchar 64 ); 65 66 create index freebusy_offers_start on freebusy_offers(store_user, "start"); 67 create index freebusy_offers_end on freebusy_offers(store_user, "end"); 68 69 create table freebusy_other ( 70 store_user varchar not null, 71 other varchar not null, 72 "start" varchar not null, 73 "end" varchar not null, 74 object_uid varchar, 75 transp varchar, 76 object_recurrenceid varchar, 77 summary varchar, 78 organiser varchar, 79 expires varchar 80 ); 81 82 create index freebusy_other_start on freebusy_other(store_user, other, "start"); 83 create index freebusy_other_end on freebusy_other(store_user, other, "end"); 84 85 create table freebusy_providers ( 86 store_user varchar not null, 87 object_uid varchar not null, 88 object_recurrenceid varchar 89 ); 90 91 create index freebusy_providers_store_user on freebusy_providers(store_user); 92 93 create table freebusy_provider_datetimes ( 94 store_user varchar not null, 95 "start" varchar 96 ); 97 98 create index freebusy_provider_datetimes_store_user on freebusy_provider_datetimes(store_user); 99 100 -- Object store request details. 101 102 create table requests ( 103 store_user varchar not null, 104 object_uid varchar not null, 105 object_recurrenceid varchar, 106 request_type varchar 107 ); 108 109 create index requests_object_uid on requests(store_user, object_uid); 110 111 112 113 -- Journal store tables. 114 115 -- Journal free/busy details. 116 117 create table quota_freebusy ( 118 quota varchar not null, 119 user_group varchar not null, 120 "start" varchar not null, 121 "end" varchar not null, 122 object_uid varchar, 123 transp varchar, 124 object_recurrenceid varchar, 125 summary varchar, 126 organiser varchar, 127 expires varchar 128 ); 129 130 create index quota_freebusy_start on quota_freebusy(quota, user_group, "start"); 131 create index quota_freebusy_end on quota_freebusy(quota, user_group, "end"); 132 133 create table user_freebusy ( 134 quota varchar not null, 135 store_user varchar not null, 136 "start" varchar not null, 137 "end" varchar not null, 138 object_uid varchar, 139 transp varchar, 140 object_recurrenceid varchar, 141 summary varchar, 142 organiser varchar, 143 expires varchar 144 ); 145 146 create index user_freebusy_start on user_freebusy(quota, store_user, "start"); 147 create index user_freebusy_end on user_freebusy(quota, store_user, "end"); 148 149 -- Journal user groups and limits. 150 151 create table quota_limits ( 152 quota varchar not null, 153 user_group varchar not null, 154 quota_limit varchar not null, 155 primary key(user_group) 156 ); 157 158 create table user_groups ( 159 quota varchar not null, 160 store_user varchar not null, 161 user_group varchar not null, 162 primary key(store_user, user_group) 163 );