У меня есть несколько вопросов о том, какие типы данных использовать и как определить некоторые поля на моем сайте. Моя текущая схема находится в MySQL, но в процессе перехода на PostregSQL.
Имя и фамилия -> Поскольку у меня многоязыковой язык, все таблицы поддерживают UTF-8, но нужно ли мне объявлять их как nvarchar в случае, если пользователь вводит китайское имя? Если это так, как я могу применить проверку поля, если она настроена на прием алфавитов только в том случае, если я предполагаю, что это английские алфавиты, а не для валидных китайских или арабских алфавитов? И я не думаю, что PostregSQL в любом случае поддерживает nvarchar?
Для сохранения текущей временной шкалы -> Пример Я работаю в компании А с января 2009 года по настоящее время. Так что я предполагаю, что для этого будет 3 поля: timeline_to, timeline_from, time_line present, куда и откуда - месячные / годовые varchars, а present - просто флаг для установки текущей даты?
Пароли пользователей. Я использую SHA 256 + соления. поэтому у меня есть 2 поля, объявленные следующим образом:
password_hash - varchar (64)
password_salt- varchar (64)
Это работает, если пароль пользователя должен быть длиной от 8 до 32 символов?
время рождения -> Мне нужно записать время рождения для приложения, чтобы вычислить некоторые астрологические значения. так что это означает часы, минуты и утра / вечера. Поэтому лучше всего хранить эти 3 отдельных списка выбора с помощью varchar или использовать тип данных времени в бэкэнде и разрешать пользователям использовать один список выбора в интерфейсе?
Наконец, только для месяца и года рождения, это int или varchar, если я храню их в отдельных строках? Все они имеют первичные ключи int для целей отчетности, так что int имеет больше смысла? или я должен хранить их в 1 поле только как тип даты?