powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / оцените работу, тестовое задание для себя
3 сообщений из 3, страница 1 из 1
оцените работу, тестовое задание для себя
    #38984956
Geber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
с базами только знакомлюсь, новичек, не пинайте сильно.
подскажите в чем могут быть ошибка, где что лучше исправить.
использую PG 9.4

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
create schema users;

-- таблица с пользователями
create table users.users
(
id_user bigserial primary key unique,
date_add timestamp without time zone DEFAULT ('now'::text)::timestamp without time zone,
username text, -- можно поставить varchar c определенной длинной
email text,
phone text,
_username text, --md5(lower(username));
_userpass text, -- md5 пароля
history_login jsonb, -- история входа пользователя 
fullname jsonb -- полное имя пользователя
);

-- таблица с токенами для пользователя.
create table users.users_token
(
token text primary key unique, -- md5 от каких нибудь данных
user_id bigint REFERENCES users.users(id_user), -- ссылка на пользователя в таблице 

-- дата активации токена
date_open timestamp without time zone DEFAULT ('now'::text)::timestamp without time zone,
-- дата деактивации токена
date_close timestamp without time zone DEFAULT ('now'::text)::timestamp without time zone
);



позже напишу хранимки, на ваш суд
...
Рейтинг: 0 / 0
оцените работу, тестовое задание для себя
    #38985010
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geber,

PRIMARY KEY уже есть UNIQUE, так что это избыточно

рекомендую использовать `timestamp with time zone`, меньше проблем в будущем

лучше использовать text, чем varchar (на мой взгляд)

зачем отдельное поле `_username`? оно зависит от `username` и легко вычисляется.

почему история в `jsonb`? как вы будете искать всех пользователей, созданный в первом квартале или же всех зашедших на сайт хотя бы раз в день?

почему `fullname` в `jsonb`? зачем структура этому полю?


В целом — для чего это все? Вы не упомянули целей.
...
Рейтинг: 0 / 0
оцените работу, тестовое задание для себя
    #38985148
Geber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это для обучения. изучаю базы данных.
есть в голове один проект хочется реализовать, и как раз шишок набью.

- _username - это md5 от username, в нижнем регистре, что бы дальше сделать индекс по этому полю и моментально проверять есть ли такой пользователь в базе.
- по этому же полю и буду искать, вроде быстро очень работает поиск в jsonb.
(считаете не стоит так делать?)
- проект который планирую сделать, будет работать с json. да и хранимки с входящими парамтрами легче делать, нужно поле добавил прямо в коде его назначение.


а по токенам что можете сказать?
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / оцените работу, тестовое задание для себя
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]