Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

93 rindas
2.6KB

  1. CREATE TABLE users (
  2. userid INT UNSIGNED AUTO_INCREMENT,
  3. username VARCHAR(45) UNIQUE NOT NULL,
  4. password VARCHAR(45) NOT NULL,
  5. full_name VARCHAR(200) NOT NULL,
  6. company VARCHAR(50),
  7. email VARCHAR(50) NOT NULL,
  8. street_address VARCHAR(50),
  9. city VARCHAR(50),
  10. state VARCHAR(50),
  11. postal_code VARCHAR(50),
  12. country VARCHAR(50),
  13. PRIMARY KEY (userid)
  14. );
  15. CREATE TABLE project_category (
  16. categoryid INT UNSIGNED AUTO_INCREMENT,
  17. category_name VARCHAR(200) UNIQUE NOT NULL,
  18. PRIMARY KEY (categoryid)
  19. );
  20. CREATE TABLE users_categories (
  21. userid INT UNSIGNED NOT NULL,
  22. categoryid INT UNSIGNED NOT NULL,
  23. PRIMARY KEY (userid, categoryid),
  24. FOREIGN KEY (userid) REFERENCES users(userid),
  25. FOREIGN KEY (categoryid) REFERENCES project_category(categoryid)
  26. );
  27. CREATE TABLE projects (
  28. projectid INT UNSIGNED AUTO_INCREMENT,
  29. categoryid INT UNSIGNED NOT NULL,
  30. userid INT UNSIGNED NOT NULL,
  31. title VARCHAR(200) NOT NULL,
  32. project_description VARCHAR(500) NOT NULL,
  33. project_status VARCHAR(16) NOT NULL, -- This should be either open, in progress or finished
  34. PRIMARY KEY (projectid),
  35. FOREIGN KEY (categoryid) REFERENCES project_category(categoryid),
  36. FOREIGN KEY (userid) REFERENCES users(userid)
  37. );
  38. CREATE TABLE projects_users (
  39. projectid INT UNSIGNED NOT NULL,
  40. userid INT UNSIGNED NOT NULL,
  41. read_permission BOOLEAN,
  42. write_permission BOOLEAN,
  43. modify_permission BOOLEAN,
  44. PRIMARY KEY (projectid, userid),
  45. FOREIGN KEY (projectid) REFERENCES projects(projectid),
  46. FOREIGN KEY (userid) REFERENCES users(userid)
  47. );
  48. CREATE TABLE tasks (
  49. taskid INT UNSIGNED AUTO_INCREMENT,
  50. projectid INT UNSIGNED NOT NULL,
  51. title VARCHAR(200) NOT NULL,
  52. task_description VARCHAR(500) NOT NULL,
  53. budget INT NOT NULL,
  54. task_status VARCHAR(64) NOT NULL, -- This should be Waiting for delivery, delivered, accepted and declined delivery
  55. feedback VARCHAR(500) NULL,
  56. PRIMARY KEY (taskid),
  57. FOREIGN KEY (projectid) REFERENCES projects(projectid)
  58. );
  59. CREATE TABLE task_files (
  60. fileid INT NOT NULL AUTO_INCREMENT,
  61. taskid INT UNSIGNED NOT NULL,
  62. filename VARCHAR(45) NOT NULL,
  63. PRIMARY KEY (fileid),
  64. FOREIGN KEY (taskid) REFERENCES tasks(taskid)
  65. );
  66. /*
  67. * Initial data
  68. */
  69. insert into users values (NULL, "admin", "48bead1bb864138c2cafaf1bd41332ab", "Admin Modsen", "ntnu", 'mail@ntnu.no', "street", "trondheim", "trondheim", "1234", "norway");
  70. insert into project_category values (NULL, "Gardening");
  71. insert into project_category values (NULL, "Programming");
  72. insert into project_category values (NULL, "Grocery shopping");
  73. /*
  74. Create default database user
  75. */
  76. CREATE USER 'root'@'10.5.0.6' IDENTIFIED BY 'root';
  77. GRANT ALL PRIVILEGES ON db.* TO 'root'@'10.5.0.6';