mirror of
https://github.com/openvk/openvk
synced 2024-11-11 01:19:53 +03:00
133 lines
4.9 KiB
MySQL
133 lines
4.9 KiB
MySQL
|
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
||
|
SET time_zone = "+00:00";
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS `coin_vouchers` (
|
||
|
`id` bigint(20) unsigned NOT NULL,
|
||
|
`coins` mediumint(8) unsigned NOT NULL DEFAULT '0',
|
||
|
`rating` mediumint(8) unsigned NOT NULL DEFAULT '0',
|
||
|
`token` char(24) DEFAULT NULL,
|
||
|
`usages_left` smallint(5) unsigned DEFAULT NULL,
|
||
|
`deleted` tinyint(1) NOT NULL DEFAULT '0'
|
||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||
|
|
||
|
DELIMITER $$
|
||
|
CREATE TRIGGER `coinVoucherTokenAutoGen` BEFORE INSERT ON `coin_vouchers`
|
||
|
FOR EACH ROW IF NEW.token IS NULL THEN
|
||
|
SET NEW.token = SUBSTRING(UPPER(REPLACE(UUID(), "-", "")), 1, 24);
|
||
|
END IF
|
||
|
$$
|
||
|
DELIMITER ;
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS `gifts` (
|
||
|
`id` bigint(20) unsigned NOT NULL,
|
||
|
`internal_name` varchar(256) NOT NULL DEFAULT 'Unnamed gift',
|
||
|
`price` smallint(5) unsigned NOT NULL,
|
||
|
`usages` int(10) unsigned NOT NULL DEFAULT '0',
|
||
|
`image` mediumblob NOT NULL,
|
||
|
`limit` tinyint(3) unsigned DEFAULT NULL,
|
||
|
`limit_period` bigint(20) unsigned DEFAULT NULL,
|
||
|
`updated` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||
|
`deleted` int(11) NOT NULL DEFAULT '0'
|
||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS `gift_categories` (
|
||
|
`id` bigint(20) unsigned NOT NULL,
|
||
|
`autoquery` varchar(512) DEFAULT NULL,
|
||
|
`deleted` tinyint(1) NOT NULL DEFAULT '0'
|
||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS `gift_categories_locales` (
|
||
|
`id` bigint(20) unsigned NOT NULL,
|
||
|
`category` bigint(20) unsigned NOT NULL,
|
||
|
`language` char(8) CHARACTER SET ascii COLLATE ascii_bin NOT NULL,
|
||
|
`name` varchar(1024) NOT NULL,
|
||
|
`description` text
|
||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS `gift_relations` (
|
||
|
`id` bigint(20) unsigned NOT NULL,
|
||
|
`gift` bigint(20) unsigned NOT NULL,
|
||
|
`category` bigint(20) unsigned NOT NULL
|
||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS `gift_user_relations` (
|
||
|
`id` bigint(20) unsigned NOT NULL,
|
||
|
`gift` bigint(20) unsigned NOT NULL,
|
||
|
`sender` bigint(20) unsigned NOT NULL,
|
||
|
`receiver` bigint(20) unsigned NOT NULL,
|
||
|
`comment` text,
|
||
|
`anonymous` tinyint(1) NOT NULL DEFAULT '0',
|
||
|
`sent` bigint(20) unsigned NOT NULL
|
||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS `voucher_users` (
|
||
|
`id` bigint(20) unsigned NOT NULL,
|
||
|
`voucher` bigint(20) unsigned NOT NULL,
|
||
|
`user` bigint(20) unsigned NOT NULL
|
||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||
|
|
||
|
ALTER TABLE `coin_vouchers`
|
||
|
ADD PRIMARY KEY (`id`),
|
||
|
ADD KEY `token` (`token`,`deleted`);
|
||
|
|
||
|
ALTER TABLE `gifts`
|
||
|
ADD PRIMARY KEY (`id`),
|
||
|
ADD KEY `deleted` (`deleted`);
|
||
|
|
||
|
ALTER TABLE `gift_categories`
|
||
|
ADD PRIMARY KEY (`id`),
|
||
|
ADD KEY `deleted` (`deleted`);
|
||
|
|
||
|
ALTER TABLE `gift_categories_locales`
|
||
|
ADD PRIMARY KEY (`id`),
|
||
|
ADD KEY `category` (`category`),
|
||
|
ADD KEY `category_2` (`category`,`language`);
|
||
|
|
||
|
ALTER TABLE `gift_relations`
|
||
|
ADD PRIMARY KEY (`id`),
|
||
|
ADD KEY `gift` (`gift`),
|
||
|
ADD KEY `category` (`category`);
|
||
|
|
||
|
ALTER TABLE `gift_user_relations`
|
||
|
ADD PRIMARY KEY (`id`),
|
||
|
ADD KEY `gift` (`gift`),
|
||
|
ADD KEY `sender` (`sender`),
|
||
|
ADD KEY `receiver` (`receiver`),
|
||
|
ADD KEY `sent` (`sent`);
|
||
|
|
||
|
ALTER TABLE `voucher_users`
|
||
|
ADD PRIMARY KEY (`id`),
|
||
|
ADD KEY `voucher` (`voucher`,`user`),
|
||
|
ADD KEY `FK_userToVoucher` (`user`);
|
||
|
|
||
|
ALTER TABLE `coin_vouchers`
|
||
|
MODIFY `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT;
|
||
|
ALTER TABLE `gifts`
|
||
|
MODIFY `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT;
|
||
|
ALTER TABLE `gift_categories`
|
||
|
MODIFY `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT;
|
||
|
ALTER TABLE `gift_categories_locales`
|
||
|
MODIFY `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT;
|
||
|
ALTER TABLE `gift_relations`
|
||
|
MODIFY `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT;
|
||
|
ALTER TABLE `gift_user_relations`
|
||
|
MODIFY `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT;
|
||
|
ALTER TABLE `voucher_users`
|
||
|
MODIFY `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT;
|
||
|
|
||
|
ALTER TABLE `gift_categories_locales`
|
||
|
ADD CONSTRAINT `FK_localeToGiftCat` FOREIGN KEY (`category`) REFERENCES `gift_categories` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
||
|
ALTER TABLE `gift_relations`
|
||
|
ADD CONSTRAINT `FK_categoryToGift` FOREIGN KEY (`category`) REFERENCES `gift_categories` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||
|
ADD CONSTRAINT `FK_giftToCategory` FOREIGN KEY (`gift`) REFERENCES `gifts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
||
|
ALTER TABLE `gift_user_relations`
|
||
|
ADD CONSTRAINT `FK_giftToReceiver` FOREIGN KEY (`receiver`) REFERENCES `profiles` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||
|
ADD CONSTRAINT `FK_giftToSender` FOREIGN KEY (`sender`) REFERENCES `profiles` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||
|
ADD CONSTRAINT `FK_receiverToGift` FOREIGN KEY (`gift`) REFERENCES `gifts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
||
|
ALTER TABLE `voucher_users`
|
||
|
ADD CONSTRAINT `FK_userToVoucher` FOREIGN KEY (`user`) REFERENCES `profiles` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||
|
ADD CONSTRAINT `FK_voucherToVoucher` FOREIGN KEY (`voucher`) REFERENCES `coin_vouchers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|