Learning/Mysql-example/Database/schema.sql

36 lines
1.3 KiB
MySQL
Raw Normal View History

2023-05-05 18:58:11 +00:00
CREATE TABLE `addresses` (
`id` bigint(20) UNSIGNED NOT NULL,
`user_id` bigint(20) UNSIGNED NOT NULL,
`first_name` varchar(64) NOT NULL,
`last_name` varchar(64) NOT NULL,
`street` varchar(64) NOT NULL,
`house_number` varchar(64) NOT NULL,
`city` varchar(64) NOT NULL,
`postal_code` varchar(64) NOT NULL,
`country` varchar(2) NOT NULL,
`last_updated` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `users` (
`id` bigint(20) UNSIGNED NOT NULL,
`email` varchar(64) NOT NULL,
`password_hash` varchar(512) NOT NULL DEFAULT 'password-hash',
`first_name` varchar(64) NOT NULL,
`last_name` varchar(64) NOT NULL,
`birthday` date NOT NULL,
`billing_address_id` int(20) UNSIGNED DEFAULT NULL,
`shipping_address_id` int(20) UNSIGNED DEFAULT NULL,
`last_updated` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
ALTER TABLE `addresses`
ADD PRIMARY KEY (`id`);
ALTER TABLE `users`
ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `email` (`email`);
ALTER TABLE `addresses`
MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;
ALTER TABLE `users`
MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;
COMMIT;