blobber/src/database/blobber.sql

67 lines
2.7 KiB
SQL

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
CREATE TABLE `blobs` (
`id` char(36) NOT NULL,
`mime_type` varchar(255) NOT NULL DEFAULT 'application/octet-stream',
`modify_token` char(255) NOT NULL,
`ref_branch_blob` char(36) DEFAULT NULL,
`is_removed` tinyint(1) NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `collections` (
`id` char(36) NOT NULL,
`modify_token` char(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `rel_collections_blobs` (
`ref_collection_id` char(36) NOT NULL,
`ref_blob_id` char(36) NOT NULL,
`label` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `rel_collections_collections` (
`ref_collection_id` char(36) NOT NULL,
`ref_child_collection_id` char(36) NOT NULL,
`label` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
ALTER TABLE `blobs`
ADD PRIMARY KEY (`id`),
ADD KEY `ref_replaces_blob` (`ref_branch_blob`);
ALTER TABLE `collections`
ADD PRIMARY KEY (`id`);
ALTER TABLE `rel_collections_blobs`
ADD KEY `ref_collection_id` (`ref_collection_id`),
ADD KEY `ref_blob_id` (`ref_blob_id`);
ALTER TABLE `rel_collections_collections`
ADD KEY `ref_collection_id` (`ref_collection_id`,`ref_child_collection_id`),
ADD KEY `ref_child_collection_id` (`ref_child_collection_id`);
ALTER TABLE `blobs`
ADD CONSTRAINT `blobs_ibfk_1` FOREIGN KEY (`ref_branch_blob`) REFERENCES `blobs` (`id`) ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE `rel_collections_blobs`
ADD CONSTRAINT `rel_collections_blobs_ibfk_1` FOREIGN KEY (`ref_blob_id`) REFERENCES `blobs` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `rel_collections_blobs_ibfk_2` FOREIGN KEY (`ref_collection_id`) REFERENCES `collections` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `rel_collections_collections`
ADD CONSTRAINT `rel_collections_collections_ibfk_1` FOREIGN KEY (`ref_collection_id`) REFERENCES `collections` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `rel_collections_collections_ibfk_2` FOREIGN KEY (`ref_child_collection_id`) REFERENCES `collections` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;