больше с mongodb.
Хочу определисься со стилем, и во всех проектах делать все консистентно. Прошу прокомментировать мой список, который я для себя составил для работы с sqlalchemy / postgresql:
1) Для время использовать всегда timestamp with time zone. Да, все мои приложения работают на серверах, где всегда выставлена tz=UTC. Но все равно лучше в postgresql именно с таймзоной все записывать, с той же UTC
2) Для строк не используем больше VARCHAR. Так как у PostgreSQL уже нет никакой разницы в скорости междну text и varchar. Теперь везде только TEXT.
3) Для строк по умолчанию делаем так: name text NOT NULL DEFAULT ‘’, т.е. по умолчанию отсутствие данных это пустая строка. И делаем поля nullable = True лишь в том случае, когда у нас легитимно может быть значение в виде пустой строки + нам надо знать, что данные еще не определены. Эту идею я у мира django взял.
4) Для всех timestamp полей имена делаем с суффиксом _at: created_at, updated_at, last_ok_at
5) Для всех boolean полей делаем префикс is_: is_active, is_paused
6) Имена таблицы делаем в единственном числе: user, post, message. Это больше вкусовщина, но мой выбор в сторону единственного числа в пал из-за того, что иногда я не знаю как слово в множественном будет (английский я знаю, но бывают несуществуюище технические слова).
Если ли в этом списке какие-то вредные идеи, которые мне могут негативно аукнуться в дальнейшем?
1) Для время использовать всегда timestamp with time zone. Да, все мои приложения работают на серверах, где всегда выставлена tz=UTC. Но все равно лучше в postgresql именно с таймзоной все записывать, с той же UTC Я взял исходный код от azure библиотеки работы с mssql сервером, utc_timestamp = datetime.datetime.utcnow().replace(tzinfo=datetime.timezone.utc).isoformat()
Обсуждают сегодня