\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