51 lines
1.6 KiB
SQL
51 lines
1.6 KiB
SQL
-- README
|
|
-- Prefix idx_ = index
|
|
-- Prefix fk_ = foreign
|
|
-- Create an index for fast lookups
|
|
-- Defining constraints separately for better readability & maintainability
|
|
-- Prefix p_ = Procedure
|
|
-- Prefix i_ = Input(s)
|
|
-- Prefix v_ = Variable(s)
|
|
-- Prefix o_ = Output(s)
|
|
|
|
-- Main table
|
|
|
|
create table if not exists `gebox_package` (
|
|
`id` int(11) not null auto_increment primary key,
|
|
`name` varchar(36) not null,
|
|
`desc` longtext default null
|
|
) engine=InnoDB default charset=utf8mb4;
|
|
|
|
create table if not exists `gebox_package_version` (
|
|
`id` int(11) not null auto_increment primary key,
|
|
`package` int(11) not null,
|
|
`version` longtext not null,
|
|
`release` datetime default null,
|
|
key `idx_package` (`package`),
|
|
constraint `gebox_instance_fk_package`
|
|
foreign key (`package`) references `gebox_package` (`id`)
|
|
on update cascade
|
|
on delete cascade
|
|
) engine=InnoDB default charset=utf8mb4;
|
|
|
|
-- Instance table
|
|
|
|
create table if not exists `gebox_instance` (
|
|
`id` int(11) not null auto_increment primary key,
|
|
--`profile` int(11) not null,
|
|
`instance` varchar(36) not null,
|
|
`domain` longtext not null,
|
|
`product` int(11) not null,
|
|
`status` text default 'pending',
|
|
--key `idx_profile` (`profile`),
|
|
key `idx_product` (`product`),
|
|
--constraint `gebox_instance_fk_profile`
|
|
-- foreign key (`profile`) references `auth_profile` (`id`)
|
|
-- on update cascade
|
|
-- on delete cascade,
|
|
constraint `gebox_instance_fk_product`
|
|
foreign key (`product`) references `gebox_package_version` (`id`)
|
|
on update restrict
|
|
on delete restrict
|
|
) engine=InnoDB default charset=utf8mb4;
|