You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.8 KiB
SQL
48 lines
1.8 KiB
SQL
CREATE DATABASE IF NOT EXISTS `CryAssetDB`;
|
|
|
|
USE `CryAssetDB`;
|
|
|
|
CREATE TABLE `categories` (
|
|
`category_id` int(10) NOT NULL auto_increment,
|
|
`category` varchar(255) UNIQUE NOT NULL,
|
|
`order_id` int(10) NOT NULL,
|
|
PRIMARY KEY (`category_id`)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS `tags` (
|
|
`id` int(10) unsigned NOT NULL auto_increment,
|
|
`tag` varchar(64) NOT NULL,
|
|
`category_id` int(10) default NULL,
|
|
PRIMARY KEY (`id`),
|
|
KEY `FK_tags_to_category_id` (`category_id`),
|
|
UNIQUE KEY `tag` (`tag`),
|
|
CONSTRAINT `FK_tags_to_category_id` FOREIGN KEY (`category_id`) REFERENCES `categories` (`category_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS `projects` (
|
|
`id` int(10) unsigned NOT NULL auto_increment,
|
|
`name` varchar(32) NOT NULL COMMENT 'Convenient project name for easy filtering',
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `name` (`name`)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS `asset_inventory` (
|
|
`id` bigint(20) unsigned NOT NULL auto_increment,
|
|
`project_id` int(10) unsigned NOT NULL,
|
|
`relpath` varchar(255) NOT NULL COMMENT 'relpath to the asset',
|
|
`description` varchar(255) default NULL,
|
|
PRIMARY KEY (`id`),
|
|
KEY `FK_asset_inventory_to_project_id` (`project_id`),
|
|
CONSTRAINT `FK_asset_inventory_to_project_id` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS `asset_tags` (
|
|
`asset_id` bigint(20) unsigned NOT NULL,
|
|
`tag_id` int(10) unsigned NOT NULL,
|
|
PRIMARY KEY (`asset_id`,`tag_id`),
|
|
KEY `FK_asset_tags_to_asset_id` (`asset_id`),
|
|
KEY `FK_asset_tags_to_tag_id` (`tag_id`),
|
|
CONSTRAINT `FK_asset_tags_to_asset_id` FOREIGN KEY (`asset_id`) REFERENCES `asset_inventory` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
CONSTRAINT `FK_asset_tags_to_tag_id` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
)
|