36 lines
1.3 KiB
MySQL
36 lines
1.3 KiB
MySQL
|
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;
|