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 ); 49 50 create index freebusy_start on freebusy(store_user, "start"); 51 create index freebusy_end on freebusy(store_user, "end"); 52 53 create table freebusy_offers ( 54 store_user varchar not null, 55 "start" varchar not null, 56 "end" varchar not null, 57 object_uid varchar, 58 transp varchar, 59 object_recurrenceid varchar, 60 summary varchar, 61 organiser varchar, 62 expires varchar 63 ); 64 65 create index freebusy_offers_start on freebusy_offers(store_user, "start"); 66 create index freebusy_offers_end on freebusy_offers(store_user, "end"); 67 68 create table freebusy_other ( 69 store_user varchar not null, 70 other varchar not null, 71 "start" varchar not null, 72 "end" varchar not null, 73 object_uid varchar, 74 transp varchar, 75 object_recurrenceid varchar, 76 summary varchar, 77 organiser varchar 78 ); 79 80 create index freebusy_other_start on freebusy_other(store_user, other, "start"); 81 create index freebusy_other_end on freebusy_other(store_user, other, "end"); 82 83 create table freebusy_providers ( 84 store_user varchar not null, 85 object_uid varchar not null, 86 object_recurrenceid varchar 87 ); 88 89 create index freebusy_providers_store_user on freebusy_providers(store_user); 90 91 create table freebusy_provider_datetimes ( 92 store_user varchar not null, 93 "start" varchar 94 ); 95 96 create index freebusy_provider_datetimes_store_user on freebusy_provider_datetimes(store_user); 97 98 -- Object store request details. 99 100 create table requests ( 101 store_user varchar not null, 102 object_uid varchar not null, 103 object_recurrenceid varchar, 104 request_type varchar 105 ); 106 107 create index requests_object_uid on requests(store_user, object_uid); 108 109 110 111 -- Journal store tables. 112 113 -- Journal free/busy details. 114 115 create table quota_freebusy ( 116 quota varchar not null, 117 user_group varchar not null, 118 "start" varchar not null, 119 "end" varchar not null, 120 object_uid varchar, 121 transp varchar, 122 object_recurrenceid varchar, 123 summary varchar, 124 organiser varchar, 125 attendee varchar 126 ); 127 128 create index quota_freebusy_start on quota_freebusy(quota, user_group, "start"); 129 create index quota_freebusy_end on quota_freebusy(quota, user_group, "end"); 130 131 create table quota_delegates ( 132 quota varchar not null, 133 store_user varchar not null, 134 primary key(quota, store_user) 135 ); 136 137 create table user_freebusy ( 138 quota varchar not null, 139 store_user varchar not null, 140 "start" varchar not null, 141 "end" varchar not null, 142 object_uid varchar, 143 transp varchar, 144 object_recurrenceid varchar, 145 summary varchar, 146 organiser varchar 147 ); 148 149 create index user_freebusy_start on user_freebusy(quota, store_user, "start"); 150 create index user_freebusy_end on user_freebusy(quota, store_user, "end"); 151 152 -- Journal user groups and limits. 153 154 create table quota_limits ( 155 quota varchar not null, 156 user_group varchar not null, 157 quota_limit varchar not null, 158 primary key(quota, user_group) 159 ); 160 161 create table user_groups ( 162 quota varchar not null, 163 store_user varchar not null, 164 user_group varchar not null, 165 primary key(quota, store_user, user_group) 166 );