в более чем 80% случаев отказаться от использования boolean переменных и заменить их на timestamp.
Например вместо
emailVerified
использовать
emailVerifiedAt
, вместо
isDeleted
DeletedAt
.
Преимущества:
Отладка: Для целей отладки может быть полезно знать, когда было изменено булево значение. Например, если в вашем коде есть ошибка, из-за которой булево значение устанавливается неправильно, вы можете использовать временную метку, чтобы отследить, когда произошла ошибка.
Аналитика: она также может быть полезна для аналитических целей. Например, с помощью временной метки можно узнать, сколько пользователей подтвердили свою электронную почту или сколько товаров было удалено за последние 30 дней.
Недостатки:
Сторедж: Хранение булевых значений в виде временных меток занимает больше места в вашей базе данных. Это может быть существенной статьей расходов, если у вас большая база данных.
Усложнение кода: работа с булевыми значениями, хранящимися в виде временных меток, может быть более сложной. Вам придется написать дополнительный код для преобразования временной метки в булево значение.
https://www.youtube.com/watch?v=G5_DLef7_9E
И чего обсудить хочешь?) я за Boolean ) а timestamp в логи.
Аргумент по большому хранению данных в 2024 году выглядит конечно убедительно 😁😁
для хранения булевого значения у тебя юзается допустим 2 байта + служебная инфа, а для таймстемпа уже между 7 и 13 байт. Звучит смешно, но берем пару миллионов записей + бекепы это может уже вылиться в гигабайты и лишнее процессорное время на обработку
И выливается это всё в лишние $20 в месяц? 😁
так тут речь не про стоимость а про раздутие базы
Это зависит от контекста. Например имея email_verified_at можно будет точно знать когда пользователь получил доступ к аккаунту, и от этого строить свою аналитику, ведь письма не всегда сразу доходят, или, например из-за сбоя встали в долгую очередь. Если ты знаешь что проект на одну страницу и с небольшим интерактивом - то естественно это не нужно, булево будет достаточно.
Обсуждают сегодня