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 attendee varchar -- used by quotas 79 ); 80 81 create index freebusy_other_start on freebusy_other(store_user, other, "start"); 82 create index freebusy_other_end on freebusy_other(store_user, other, "end"); 83 84 create table freebusy_providers ( 85 store_user varchar not null, 86 object_uid varchar not null, 87 object_recurrenceid varchar 88 ); 89 90 create index freebusy_providers_store_user on freebusy_providers(store_user); 91 92 create table freebusy_provider_datetimes ( 93 store_user varchar not null, 94 "start" varchar 95 ); 96 97 create index freebusy_provider_datetimes_store_user on freebusy_provider_datetimes(store_user); 98 99 -- Object store request details. 100 101 create table requests ( 102 store_user varchar not null, 103 object_uid varchar not null, 104 object_recurrenceid varchar, 105 request_type varchar 106 ); 107 108 create index requests_object_uid on requests(store_user, object_uid); 109 110 111 112 -- Journal store tables. 113 114 create table quota_delegates ( 115 quota varchar not null, 116 store_user varchar not null, 117 primary key(quota, store_user) 118 ); 119 120 -- Journal user groups and limits. 121 122 create table quota_limits ( 123 quota varchar not null, 124 user_group varchar not null, 125 quota_limit varchar not null, 126 primary key(quota, user_group) 127 ); 128 129 create table user_groups ( 130 quota varchar not null, 131 store_user varchar not null, 132 user_group varchar not null, 133 primary key(quota, store_user, user_group) 134 );