65 lines
No EOL
2.9 KiB
SQL
65 lines
No EOL
2.9 KiB
SQL
CREATE TABLE `enterprises` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`name` text NOT NULL,
|
|
`type` text NOT NULL,
|
|
`owner_name` text NOT NULL,
|
|
`mobile` text NOT NULL,
|
|
`address` text
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `staff` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`name` text NOT NULL,
|
|
`username` text NOT NULL,
|
|
`email` text,
|
|
`mobile` text,
|
|
`added_on` text NOT NULL,
|
|
`password` text NOT NULL,
|
|
`is_password_reset_needed` integer DEFAULT true NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `staff_username_unique` ON `staff` (`username`);--> statement-breakpoint
|
|
CREATE TABLE `roles` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`name` text NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `roles_name_unique` ON `roles` (`name`);--> statement-breakpoint
|
|
CREATE TABLE `permissions` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`name` text NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `permissions_name_unique` ON `permissions` (`name`);--> statement-breakpoint
|
|
CREATE TABLE `role_permissions` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`role_id` integer NOT NULL,
|
|
`permission_id` integer NOT NULL,
|
|
FOREIGN KEY (`role_id`) REFERENCES `roles`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`permission_id`) REFERENCES `permissions`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `staff_roles` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`staff_id` integer NOT NULL,
|
|
`role_id` integer NOT NULL,
|
|
FOREIGN KEY (`staff_id`) REFERENCES `staff`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`role_id`) REFERENCES `roles`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `enterprise_staff` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`staff_id` integer NOT NULL,
|
|
`enterprise_id` integer NOT NULL,
|
|
FOREIGN KEY (`staff_id`) REFERENCES `staff`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`enterprise_id`) REFERENCES `enterprises`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
ALTER TABLE `storage_spaces` ADD `enterprise_id` integer REFERENCES enterprises(id);--> statement-breakpoint
|
|
CREATE INDEX `storage_spaces_enterprise_idx` ON `storage_spaces` (`enterprise_id`);--> statement-breakpoint
|
|
ALTER TABLE `distributors` ADD `enterprise_id` integer REFERENCES enterprises(id);--> statement-breakpoint
|
|
CREATE INDEX `distributors_enterprise_idx` ON `distributors` (`enterprise_id`);--> statement-breakpoint
|
|
ALTER TABLE `products` ADD `enterprise_id` integer REFERENCES enterprises(id);--> statement-breakpoint
|
|
CREATE INDEX `products_enterprise_idx` ON `products` (`enterprise_id`);--> statement-breakpoint
|
|
ALTER TABLE `stock_batches` ADD `enterprise_id` integer REFERENCES enterprises(id);--> statement-breakpoint
|
|
CREATE INDEX `stock_batches_enterprise_idx` ON `stock_batches` (`enterprise_id`); |