Storing user’s personal information in a MySQL table

Hello. First question. I need to store a lot of personal information about the user in the database. And I thought about such a question, is it not worth creating two tables: in one to store the basic information (login, email, password, and so on), and in the second – additional (country, city, etc.). Is it worth doing such a division, or is it better to store everything in one table?

Second question. I heard that many people recommend keeping the balance (user’s money) in a table separate from the rest of his data. Is it really worth it?


Answer 1, authority 100%

All information can be stored in one table, for its display it is not necessary to combine 2 tables in the query, respectively. less load. Financial information can be taken out separately, especially if you have to work with it a lot, for example, write off amounts from the balance sheet or write it to the balance sheet.


Answer 2, authority 100%

I feel you need to read about Normalizes

For example, your user may have several e-mails (additional) or several addresses, and these are already one-to-many relationships that need to be handled differently (and put in a separate table).

Not to mention that people can live in the same countries, cities, of which everyone can have several (as well as addresses), and for this it would be nice to have a separate table with countries, cities, etc., and the linking is done in the third table (resolving many-to-many relationships).

If you do not think that the database can grow, and also that it may have to be adapted or expanded, then you can load everything into one table.