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.
 
 
 
 
 
 

88 lines
3.1 KiB

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