A semantic search engine for source code https://bitshift.benkurtovic.com/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

98 lines
3.3 KiB

  1. -- Schema version 2
  2. CREATE DATABASE `bitshift` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
  3. USE `bitshift`;
  4. CREATE TABLE `version` (
  5. `version` INT UNSIGNED NOT NULL
  6. ) ENGINE=InnoDB;
  7. CREATE TABLE `origins` (
  8. `origin_id` TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
  9. `origin_name` VARCHAR(64) NOT NULL,
  10. `origin_url` VARCHAR(512) NOT NULL,
  11. `origin_url_base` VARCHAR(512) NOT NULL,
  12. `origin_image` BLOB DEFAULT NULL,
  13. PRIMARY KEY (`origin_id`)
  14. ) ENGINE=InnoDB;
  15. CREATE TABLE `code` (
  16. `code_id` BIGINT NOT NULL,
  17. `code_code` MEDIUMTEXT NOT NULL,
  18. PRIMARY KEY (`code_id`),
  19. FULLTEXT KEY (`code_code`)
  20. ) ENGINE=InnoDB;
  21. CREATE TABLE `codelets` (
  22. `codelet_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  23. `codelet_name` VARCHAR(300) NOT NULL,
  24. `codelet_code_id` BIGINT UNSIGNED NOT NULL,
  25. `codelet_lang` SMALLINT UNSIGNED DEFAULT NULL,
  26. `codelet_origin` TINYINT UNSIGNED NOT NULL,
  27. `codelet_url` VARCHAR(512) NOT NULL,
  28. `codelet_rank` FLOAT NOT NULL,
  29. `codelet_date_created` DATETIME DEFAULT NULL,
  30. `codelet_date_modified` DATETIME DEFAULT NULL,
  31. PRIMARY KEY (`codelet_id`),
  32. FULLTEXT KEY (`codelet_name`),
  33. KEY (`codelet_lang`),
  34. KEY (`codelet_rank`),
  35. KEY (`codelet_date_created`),
  36. KEY (`codelet_date_modified`),
  37. FOREIGN KEY (`codelet_code_id`)
  38. REFERENCES `code` (`code_id`)
  39. ON DELETE RESTRICT ON UPDATE CASCADE,
  40. FOREIGN KEY (`codelet_origin`)
  41. REFERENCES `origins` (`origin_id`)
  42. ON DELETE RESTRICT ON UPDATE CASCADE
  43. ) ENGINE=InnoDB;
  44. CREATE TABLE `authors` (
  45. `author_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  46. `author_codelet` BIGINT UNSIGNED NOT NULL,
  47. `author_name` VARCHAR(128) NOT NULL,
  48. `author_url` VARCHAR(512) DEFAULT NULL,
  49. PRIMARY KEY (`author_id`),
  50. FULLTEXT KEY (`author_name`),
  51. FOREIGN KEY (`author_codelet`)
  52. REFERENCES `codelets` (`codelet_id`)
  53. ON DELETE CASCADE ON UPDATE CASCADE
  54. ) ENGINE=InnoDB;
  55. CREATE TABLE `symbols` (
  56. `symbol_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  57. `symbol_codelet` BIGINT UNSIGNED NOT NULL,
  58. `symbol_type` TINYINT UNSIGNED NOT NULL,
  59. `symbol_name` VARCHAR(512) NOT NULL,
  60. `symbol_row` INT UNSIGNED NOT NULL,
  61. `symbol_col` INT UNSIGNED NOT NULL,
  62. `symbol_end_row` INT UNSIGNED NOT NULL,
  63. `symbol_end_col` INT UNSIGNED NOT NULL,
  64. PRIMARY KEY (`symbol_id`),
  65. KEY (`symbol_type`, `symbol_name`(32)),
  66. FOREIGN KEY (`symbol_codelet`)
  67. REFERENCES `codelets` (`codelet_id`)
  68. ON DELETE CASCADE ON UPDATE CASCADE
  69. ) ENGINE=InnoDB;
  70. CREATE TABLE `cache` (
  71. `cache_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  72. `cache_hash` BIGINT NOT NULL,
  73. `cache_count_mnt` TINYINT UNSIGNED NOT NULL,
  74. `cache_count_exp` TINYINT UNSIGNED NOT NULL,
  75. `cache_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  76. `cache_last_used` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  77. PRIMARY KEY (`cache_id`)
  78. ) ENGINE=InnoDB;
  79. CREATE TABLE `cache_data` (
  80. `cdata_cache` INT UNSIGNED NOT NULL,
  81. `cdata_codelet` BIGINT UNSIGNED NOT NULL,
  82. FOREIGN KEY (`cdata_cache`)
  83. REFERENCES `cache` (`cache_id`)
  84. ON DELETE CASCADE ON UPDATE CASCADE,
  85. FOREIGN KEY (`cdata_codelet`)
  86. REFERENCES `codelets` (`codelet_id`)
  87. ON DELETE CASCADE ON UPDATE CASCADE
  88. ) ENGINE=InnoDB;