I have these columns and their datatypes, Could someone give me any advice whether they are right, and if not, suggest what is more appropriate?
Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
NOTE: I'm assuming that you are using SQL Server, from the type names listed, as you've not specified anything else.
- You should allow for non-ANSI characters in names by using
VARCHARthough of course to properly support extended character sets the rest of your stack might need work also...
- You should allow for significantly longer names then 20 characters. Don't use
MAXdue to potential indexing and other performance concerns, as you are likely to want to search and/or sort by names.
- You might need to extend the VAT number column a bit too, depending on the territories that you need to support. See https://en.wikipedia.org/wiki/VAT_identification_number for a list of formats a number of which are longer then 11.
- I would be inclined to widen phone number too.
- Spaces, punctuation, and anything else that might require escaping, are a bed idea in column names. I would stick with letters, numbers, and underscore.
What is "client name" used for and how (if it does) does it related to the other name columns? There maybe specific advice about that depending on how it is intended to be used.