J'ai peu de questions sur les types de données à utiliser et la façon de définir certains champs de mon site. Mon schéma actuel est en MySQL mais en train de passer à PostregSQL.Type de données de champ/questions de validation
Première & Nom -> Depuis que je suis multi-lang, toutes les tables support UTF-8, mais dois-je les déclarer comme nvarchar en cas d'un utilisateur entre un nom chinois? Si oui, comment puis-je forcer la validation de champs si elle est configurée pour n'accepter que des alphabets car je présume que ce sont des alphabets anglais et ne valide pas pour des alphabets chinois ou arabes valides? Et je ne pense pas que PostregSQL supporte nvarchar de toute façon?
Pour stocker la ligne de temps actuelle -> Exemple Je travaille dans la société A de janvier 2009 à aujourd'hui. Donc je suppose qu'il y aura 3 champ pour ceci: timeline_to, timeline_from, time_line présent où & de mois/année varchars et présent est juste un drapeau pour définir la date actuelle?
Mots de passe utilisateur. J'utilise SHA 256 + salage. donc j'ai 2 champs déclarés comme suit:
password_hash - varchar (64)
password_salt- varchar (64)
Est-ce que ce travail si le mot de passe de l'utilisateur doit être compris entre 8 et 32 caractères de long?temps de naissance -> Je dois enregistrer l'heure de naissance de l'application pour calculer quelques valeurs astrologiques. ce qui signifie heure, minute et am/pm. Donc, le mieux est de stocker ces 3 listes de sélection individuelles séparées avec varchar ou d'utiliser un type de données de temps dans le backend et permettre aux utilisateurs d'utiliser la liste de sélection unique dans le front-end? Enfin, pour le mois de naissance et l'année seulement, s'agit-il d'int ou de varchar si je les stocke dans des rangées séparées? Ils ont tous des clés primaires d'int pour les rapports, alors int a plus de sens? ou devrais-je les stocker dans un seul champ comme type de date?
pour 2, je ne peux pas. J'ai encore besoin de stocker la date/heure de début/fin car les gens vont chercher d'autres personnes qui travaillent dans l'entreprise X entre le 08 jan et le 09 février, donc il faut maintenir les deux dates de début/fin, ce qui est bien. Je rencontre le problème avec les utilisateurs qui sont actuellement actifs parce qu'ils n'ont pas de date de fin fixe, il est toujours à jour, donc je ne peux pas stocker de date dans la base de données pour cela. – Markus