1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
|
\pagebreak
\section{Tables}
\noindent
Todolist:\\
\begin{tabular}[ht]{|l|l|l|l|l|l|l|l|l|l|l|l|l|}
\hline
\underline{UID} & DueDate & StartDate & FinishDate & Completed & Description & Summary & Priority & Progress & Parent & Status \\
\hline
& & & & & & & & & & & &\\
\hline
\end{tabular}
\begin{verbatim}
CREATE TABLE TODOLIST (
UID int NOT NULL UNIQUE,
DueDate text, -- sqlite does not know timestamps
StartDate text,
FinishDate text,
Completed bool,
Description text,
Summary text,
Priority int,
Progress int,
Parent int,
Status int
PRIMARY KEY(UID)
);
\end{verbatim}
\noindent
Datebook: \\
\begin{tabular}[ht]{|l|l|l|l|}
\hline
\underline{UID} & \underline{ID} & Item & Value\\
\hline
& & & \\
\hline
\end{tabular}
\begin{verbatim}
CREATE TABLE DATEBOOK (
UID int NOT NULL,
ID int AUTOINCREMENT,
Item text,
Value text,
PRIMARY KEY(UID,ID)
};
\end{verbatim}
\noindent
Recurrence:\\
\begin{tabular}[ht]{|l|l|l|l|l|l|l|l|}
\hline
\underline{UID} & \underline{TID} & RType & RWeekDays & RPosition & RFreq & RHasEndDate &REndDate \\
\hline
& & & & & & &\\
\hline
\end{tabular}
\begin{verbatim}
CREATE TABLE RECURRENCE (
UID int NOT NULL UNIQUE,
TID int NOT NULL
RType int,
RWeekDays int,
RPosition int,
RFreq int,
RHasEndDate bool,
REndDate DATETIME,
PRIMARY KEY (UID)
);
\end{verbatim}
\noindent
Addressbook: \\
\begin{tabular}[ht]{|l|l|l|l|}
\hline
\underline{UID} & \underline{ID} & Item & Value\\
\hline
& & & \\
\hline
\end{tabular}
\begin{verbatim}
CREATE TABLE ADDRESSBOOK (
UID int NOT NULL,
ID int AUTOINCREMENT,
Item text,
Value text,
PRIMARY KEY(UID,ID)
};
\end{verbatim}
\noindent
Postal:\\
\begin{tabular}[ht]{|l|l|l|l|l|l|l|l|}
\hline
\underline{UID} & \underline{TID} & \underline{Type} & Street & City & State & Zip & Country \\
\hline
& & & & & & &\\
\hline
\end{tabular}
\begin{verbatim}
CREATE TABLE POSTAL (
UID int NOT NULL ,
TID int NOT NULL,
Type int NOT NULL UNIQUE, -- maybe text, then more are possible
Street text,
City text,
State text,
Zip text, -- who knows if theres no country with letters in the zip code
Country,
PRIMARY KEY (UID, Type)
);
\end{verbatim}
\noindent
Personal data: \\
\begin{tabular}[ht]{|l|l|l|l|}
\hline
\underline{UID} & \underline{ID} & Ident & Value \\
\hline
& & & \\
\hline
\end{tabular}
\begin{verbatim}
CREATE TABLE PERSONAL_DATA (
UID int NOT NULL UNIQUE,
ID int AUTOINCREMENT,
Ident text,
Priority int,
Value text,
PRIMARY KEY(UID,ID)
);
\end{verbatim}
\noindent
TableID: \\
\begin{tabular}[ht]{|l|l|l|l|}
\hline
\underline{UID} & Name & DefaultRep & Version\\
\hline
& & &\\
\hline
\end{tabular}
\begin{verbatim}
CREATE TABLE TABLEID (
UID int NOT NULL UNIQUE,
Name text,
DefaultRep text, -- list of which which columns from apps table are supposed to be queried for default,
Version int NOT NULL
PRIMARY KEY (UID)
);
\end{verbatim}
\noindent
CrossRef: \\
\begin{tabular}[ht]{|l|l|l|l|l|l|}
\hline
\underline{TID1} & \underline{UID1} & \underline{Item1} & \underline{TID2} & \underline{UID2} & \underline{Item2} \\
\hline
& & & & &\\
\hline
\end{tabular}
\begin{verbatim}
CREATE TABLE CROSSREF (
TID1 int NOT NULL,
UID1 int NOT NULL,
ID1 int NOT NULL,
TID2 int NOT NULL,
UID2 int NOT NULL,
ID2 int NOT NULL,
PRIMARY KEY()
);
\end{verbatim}
\noindent
Category: \\
\begin{tabular}[ht]{|l|l|l|l|l|l|}
\hline
\underline{UID} & Parent & Name & ApplicationName & ForeGroundColor & BackGroundColor\\
\hline
& & & & &\\
\hline
\end{tabular}
\begin{verbatim}
CREATE TABLE CATEGORY (
UID int NOT NULL UNIQUE,
Name text,
ApplicationName text,
ForeGroundColor text, <-- maybe hex?
BackGroundColor text,
PRIMARY KEY(UID)
);
\end{verbatim}
\noindent
Files: \\
\begin{tabular}[ht]{|l|l|l|l|}
\hline
\underline{UID} & MimeType & URL \\
\hline
& &\\
\hline
\end{tabular}
\begin{verbatim}
CREATE TABLE FILES (
UID int NOT NULL UNIQUE,
MimeType text, -- mimetype
URL text,
PRIMARY KEY (UID)
);
\end{verbatim}
\noindent
Applications: \\
\begin{tabular}[ht]{|l|l|l|}
\hline
\underline{UID} & MimeType & URL \\
\hline
& & \\
\hline
\end{tabular}
\begin{verbatim}
CREATE TABLE APPLICATION (
UID int NOT NULL UNIQUE,
MimeType text, -- mimetype
URL text,
PRIMARY KEY (UID)
);
\end{verbatim}
\noindent
Location: \\
\begin{tabular}[ht]{|l|l|}
\hline
\underline{UID} & Name \\
\hline
& \\
\hline
\end{tabular}
\begin{verbatim}
CREATE TABLE LOCATION (
UID int NOT NULL UNIQUE,
Name text,
PRIMARY KEY (UID)
);
\end{verbatim}
\noindent
Alarm: \\
\begin{tabular}[ht]{|l|l|l|l|l|l|l|l|}
\hline
\underline{TID} & \underline{UID} & Sound & Day & Month & Year & Time \\
\hline
& & & & & & \\
\hline
\end{tabular}
\begin{verbatim}
CREATE TABLE ALARM(
TID int NOT NULL,
UID int NOT NULL,
Sound text,
Day int MOT NULL,
Month int NOT NULL,
Year int NOT NULL,
Time text
PRIMARY KEY()
);
\end{verbatim}
\noindent
Record Categories: \\
no sure if we need it, breaks the crossref table idea \\
\begin{tabular}[ht]{|l|l|l|}
\hline
\underline{TID} & \underline{UID} & CategoryUID\\
\hline
& &\\
\hline
\end{tabular}
\begin{verbatim}
CREATE TABLE RECORD_CATEGORIES(
TID int NOT NULL,
UID int NOT NULL,
CategoryId int NOT NULL
PRIMARY KEY()
);
\end{verbatim}
\pagebreak
\noindent
Each app that wants to participate in cross referencing needs : \\
- to implement a certain interface
- need to suppy a default representation which is set as it is registered into the TID table
|