| 1 |
lars |
1 |
--
|
|
|
2 |
-- Database: `time-tracker`
|
|
|
3 |
--
|
|
|
4 |
|
|
|
5 |
-- --------------------------------------------------------
|
|
|
6 |
|
|
|
7 |
--
|
|
|
8 |
-- Table structure for table `categories`
|
|
|
9 |
--
|
|
|
10 |
|
|
|
11 |
CREATE TABLE IF NOT EXISTS `categories` (
|
|
|
12 |
`CategoryID` int(11) NOT NULL auto_increment,
|
|
|
13 |
`Name` varchar(255) NOT NULL,
|
|
|
14 |
`ProjectID` int(11) NOT NULL,
|
|
|
15 |
`ParentCategoryID` int(11) default '0',
|
|
|
16 |
`Abbreviation` varchar(255) default NULL,
|
|
|
17 |
`EstimateDuration` float(10,2) default '0.00',
|
|
|
18 |
PRIMARY KEY (`CategoryID`),
|
|
|
19 |
UNIQUE KEY `UniqueNamePerProject` (`Name`,`ProjectID`),
|
|
|
20 |
KEY `ProjectID` (`ProjectID`)
|
|
|
21 |
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
22 |
|
|
|
23 |
--
|
|
|
24 |
-- Dumping data for table `categories`
|
|
|
25 |
--
|
|
|
26 |
|
|
|
27 |
|
|
|
28 |
-- --------------------------------------------------------
|
|
|
29 |
|
|
|
30 |
--
|
|
|
31 |
-- Table structure for table `project`
|
|
|
32 |
--
|
|
|
33 |
|
|
|
34 |
CREATE TABLE IF NOT EXISTS `project` (
|
|
|
35 |
`ProjectID` int(11) NOT NULL auto_increment,
|
|
|
36 |
`Name` varchar(255) NOT NULL,
|
|
|
37 |
`Description` varchar(255) default NULL,
|
|
|
38 |
`CreationDate` datetime NOT NULL,
|
|
|
39 |
`CompletionDate` datetime NOT NULL,
|
|
|
40 |
`Disabled` tinyint(1) NOT NULL default '0',
|
|
|
41 |
`EstimateDuration` float(10,2) NOT NULL default '0.00',
|
|
|
42 |
`CreatorID` varchar(50) NOT NULL,
|
|
|
43 |
`ManagerID` varchar(50) default NULL,
|
|
|
44 |
PRIMARY KEY (`ProjectID`),
|
|
|
45 |
KEY `Name` (`Name`),
|
|
|
46 |
KEY `CreatorID` (`CreatorID`),
|
|
|
47 |
KEY `ManagerID` (`ManagerID`)
|
|
|
48 |
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
49 |
|
|
|
50 |
--
|
|
|
51 |
-- Dumping data for table `project`
|
|
|
52 |
--
|
|
|
53 |
|
|
|
54 |
|
|
|
55 |
-- --------------------------------------------------------
|
|
|
56 |
|
|
|
57 |
--
|
|
|
58 |
-- Table structure for table `project_members`
|
|
|
59 |
--
|
|
|
60 |
|
|
|
61 |
CREATE TABLE IF NOT EXISTS `project_members` (
|
|
|
62 |
`UserID` varchar(50) NOT NULL,
|
|
|
63 |
`ProjectID` int(11) NOT NULL,
|
|
|
64 |
PRIMARY KEY (`UserID`,`ProjectID`),
|
|
|
65 |
KEY `ProjectID` (`ProjectID`)
|
|
|
66 |
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
67 |
|
|
|
68 |
--
|
|
|
69 |
-- Dumping data for table `project_members`
|
|
|
70 |
--
|
|
|
71 |
|
|
|
72 |
|
|
|
73 |
-- --------------------------------------------------------
|
|
|
74 |
|
|
|
75 |
--
|
|
|
76 |
-- Table structure for table `role_types`
|
|
|
77 |
--
|
|
|
78 |
|
|
|
79 |
CREATE TABLE IF NOT EXISTS `role_types` (
|
|
|
80 |
`RoleType` varchar(50) NOT NULL,
|
|
|
81 |
`Description` varchar(255) NOT NULL,
|
|
|
82 |
PRIMARY KEY (`RoleType`)
|
|
|
83 |
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
84 |
|
|
|
85 |
--
|
|
|
86 |
-- Dumping data for table `role_types`
|
|
|
87 |
--
|
|
|
88 |
|
|
|
89 |
INSERT INTO `role_types` (`RoleType`, `Description`) VALUES ('admin', 'Project administrator may additionally view the list of all users.'),
|
|
|
90 |
('consultant', 'Consultant may log time entries only.'),
|
|
|
91 |
('manager', 'Project manager may additionally edit all projects and view reports.');
|
|
|
92 |
|
|
|
93 |
-- --------------------------------------------------------
|
|
|
94 |
|
|
|
95 |
--
|
|
|
96 |
-- Table structure for table `signon`
|
|
|
97 |
--
|
|
|
98 |
|
|
|
99 |
CREATE TABLE IF NOT EXISTS `signon` (
|
|
|
100 |
`SessionToken` varchar(32) NOT NULL,
|
|
|
101 |
`Username` varchar(50) NOT NULL,
|
|
|
102 |
`LastSignOnDate` datetime NOT NULL,
|
|
|
103 |
PRIMARY KEY (`SessionToken`),
|
|
|
104 |
KEY `Username` (`Username`)
|
|
|
105 |
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
106 |
|
|
|
107 |
--
|
|
|
108 |
-- Dumping data for table `signon`
|
|
|
109 |
--
|
|
|
110 |
|
|
|
111 |
|
|
|
112 |
-- --------------------------------------------------------
|
|
|
113 |
|
|
|
114 |
--
|
|
|
115 |
-- Table structure for table `time_entry`
|
|
|
116 |
--
|
|
|
117 |
|
|
|
118 |
CREATE TABLE IF NOT EXISTS `time_entry` (
|
|
|
119 |
`EntryID` int(11) NOT NULL auto_increment,
|
|
|
120 |
`EntryCreated` datetime NOT NULL,
|
|
|
121 |
`Duration` float(10,2) NOT NULL default '0.00',
|
|
|
122 |
`Description` varchar(1000) default NULL,
|
|
|
123 |
`CategoryID` int(11) NOT NULL default '0',
|
|
|
124 |
`EntryDate` datetime default NULL,
|
|
|
125 |
`CreatorID` varchar(50) NOT NULL,
|
|
|
126 |
`UserID` varchar(50) NOT NULL,
|
|
|
127 |
PRIMARY KEY (`EntryID`),
|
|
|
128 |
KEY `CategoryID` (`CategoryID`),
|
|
|
129 |
KEY `CreatorID` (`CreatorID`),
|
|
|
130 |
KEY `UserID` (`UserID`)
|
|
|
131 |
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
132 |
|
|
|
133 |
--
|
|
|
134 |
-- Dumping data for table `time_entry`
|
|
|
135 |
--
|
|
|
136 |
|
|
|
137 |
|
|
|
138 |
-- --------------------------------------------------------
|
|
|
139 |
|
|
|
140 |
--
|
|
|
141 |
-- Table structure for table `user_roles`
|
|
|
142 |
--
|
|
|
143 |
|
|
|
144 |
CREATE TABLE IF NOT EXISTS `user_roles` (
|
|
|
145 |
`UserID` varchar(50) NOT NULL,
|
|
|
146 |
`RoleType` varchar(50) NOT NULL,
|
|
|
147 |
PRIMARY KEY (`UserID`,`RoleType`),
|
|
|
148 |
KEY `RoleType` (`RoleType`)
|
|
|
149 |
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
150 |
|
|
|
151 |
--
|
|
|
152 |
-- Dumping data for table `user_roles`
|
|
|
153 |
--
|
|
|
154 |
|
|
|
155 |
INSERT INTO `user_roles` (`UserID`, `RoleType`) VALUES ('admin', 'admin'),
|
|
|
156 |
('admin', 'consultant'),
|
|
|
157 |
('consultant', 'consultant'),
|
|
|
158 |
('manager', 'consultant'),
|
|
|
159 |
('admin', 'manager'),
|
|
|
160 |
('manager', 'manager');
|
|
|
161 |
|
|
|
162 |
-- --------------------------------------------------------
|
|
|
163 |
|
|
|
164 |
--
|
|
|
165 |
-- Table structure for table `users`
|
|
|
166 |
--
|
|
|
167 |
|
|
|
168 |
CREATE TABLE IF NOT EXISTS `users` (
|
|
|
169 |
`Username` varchar(50) NOT NULL,
|
|
|
170 |
`Password` varchar(50) NOT NULL,
|
|
|
171 |
`EmailAddress` varchar(100) NOT NULL,
|
|
|
172 |
`Disabled` tinyint(1) NOT NULL default '0',
|
|
|
173 |
PRIMARY KEY (`Username`)
|
|
|
174 |
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
175 |
|
|
|
176 |
--
|
|
|
177 |
-- Dumping data for table `users`
|
|
|
178 |
--
|
|
|
179 |
|
|
|
180 |
INSERT INTO `users` (`Username`, `Password`, `EmailAddress`, `Disabled`) VALUES ('admin', '21232f297a57a5a743894a0e4a801fc3', 'admin@pradosoft.com', 0),
|
|
|
181 |
('consultant', '7adfa4f2ba9323e6c1e024de375434b0', 'consultant@pradosoft.com', 0),
|
|
|
182 |
('manager', '1d0258c2440a8d19e716292b231e3190', 'manager@pradosoft.com', 0);
|
|
|
183 |
|
|
|
184 |
--
|
|
|
185 |
-- Constraints for dumped tables
|
|
|
186 |
--
|
|
|
187 |
|
|
|
188 |
--
|
|
|
189 |
-- Constraints for table `categories`
|
|
|
190 |
--
|
|
|
191 |
ALTER TABLE `categories`
|
|
|
192 |
ADD CONSTRAINT `categories_ibfk_1` FOREIGN KEY (`ProjectID`) REFERENCES `project` (`ProjectID`) ON DELETE CASCADE;
|
|
|
193 |
|
|
|
194 |
--
|
|
|
195 |
-- Constraints for table `project`
|
|
|
196 |
--
|
|
|
197 |
ALTER TABLE `project`
|
|
|
198 |
ADD CONSTRAINT `project_ibfk_6` FOREIGN KEY (`ManagerID`) REFERENCES `users` (`Username`),
|
|
|
199 |
ADD CONSTRAINT `project_ibfk_5` FOREIGN KEY (`CreatorID`) REFERENCES `users` (`Username`);
|
|
|
200 |
|
|
|
201 |
--
|
|
|
202 |
-- Constraints for table `project_members`
|
|
|
203 |
--
|
|
|
204 |
ALTER TABLE `project_members`
|
|
|
205 |
ADD CONSTRAINT `project_members_ibfk_6` FOREIGN KEY (`ProjectID`) REFERENCES `project` (`ProjectID`) ON DELETE CASCADE,
|
|
|
206 |
ADD CONSTRAINT `project_members_ibfk_5` FOREIGN KEY (`UserID`) REFERENCES `users` (`Username`) ON DELETE CASCADE;
|
|
|
207 |
|
|
|
208 |
--
|
|
|
209 |
-- Constraints for table `signon`
|
|
|
210 |
--
|
|
|
211 |
ALTER TABLE `signon`
|
|
|
212 |
ADD CONSTRAINT `signon_ibfk_1` FOREIGN KEY (`Username`) REFERENCES `users` (`Username`);
|
|
|
213 |
|
|
|
214 |
--
|
|
|
215 |
-- Constraints for table `time_entry`
|
|
|
216 |
--
|
|
|
217 |
ALTER TABLE `time_entry`
|
|
|
218 |
ADD CONSTRAINT `time_entry_ibfk_8` FOREIGN KEY (`UserID`) REFERENCES `users` (`Username`),
|
|
|
219 |
ADD CONSTRAINT `time_entry_ibfk_6` FOREIGN KEY (`CategoryID`) REFERENCES `categories` (`CategoryID`) ON DELETE CASCADE,
|
|
|
220 |
ADD CONSTRAINT `time_entry_ibfk_7` FOREIGN KEY (`CreatorID`) REFERENCES `users` (`Username`);
|
|
|
221 |
|
|
|
222 |
--
|
|
|
223 |
-- Constraints for table `user_roles`
|
|
|
224 |
--
|
|
|
225 |
ALTER TABLE `user_roles`
|
|
|
226 |
ADD CONSTRAINT `user_roles_ibfk_2` FOREIGN KEY (`RoleType`) REFERENCES `role_types` (`RoleType`),
|
|
|
227 |
ADD CONSTRAINT `user_roles_ibfk_1` FOREIGN KEY (`UserID`) REFERENCES `users` (`Username`);
|