Field data type / validations questions <p>I have few questions on what data types to use and how to define some fields from my site. My current schema is in MySQL but in process of changing to PostregSQL.</p> <ol> <li><p>First &amp; Last name -> Since I have multi-lang, tables all support UTF-8, but do i need to declare them as nvarchar in-case a user enters a Chinese name? If so, how do i enforce field validation if it is set to accept alphabets only as i assume those are English alphabets and not validating for valid chinese or arabic alphabets? And i don't think PostregSQL supports nvarchar anyways?</p></li> <li><p>To store current time line - > Example I work in company A from Jan 2009 to Present. So i assume there will be 3 field for this: timeline_to, timeline_from, time_line present where to &amp; from are month/year varchars and present is just a flag to set the current date?</p></li> <li><p>User passwords. i am using SHA 256 + salting. so i have 2 fields declared as follows:<br> password_hash - varchar (64)<br> password_salt- varchar (64)<br> Does this work if the user password needs to be between 8 and 32 chars long?</p></li> <li><p>birth time -> I need to record birth time for the application to calculate some astrological values. so that means hour, minute and am/pm. So best to store these are 3 separate single select lists with varchar or use a time data type in the back end and allow users to use single select list in front end?</p></li> <li><p>Lastly for birth month and year only, are these int or varchar if i store them in separate rows? They all have primary keys of int for reporting purposes so int makes more sense? or should i store them in 1 field only as date type?</p></li> </ol>