As the commenters have correctly pointed out, it depends entirely on what you are trying to achieve.
You can, and probably should store full-precision strings so you have all significant digits, i.e. accurate information. When discarding accuracy you should generally have a good reason why you do not need it and never will need it.
Discarding precision can and does lead to the propagation of errors if you plan to perform any off-chain operations such as adding, multiplying, dividing - you will find that there is no way to accurately do such things off-chain and you must rely on the on-chain contract to discover the truth.
Treating numbers as strings in your database probably means inconvenience or the impossibility of performing math operations at the DB level but that is probably not an option in any case if you are considering inaccurate information, to begin with. If you have accurate information, as strings, you can rely on a BigNumber library to interpret and work with the stored values without loss of precision.
In the end, it depends on what you want to use the database for. As a simple example, if the user wants to empty their account and they rely on a number that was sourced from your database, then they won't have all significant digits and will likely leave "dust" in their account. Rounding can produce a number that is too high and a failing transaction. The solution to that problem is a complete, accurate number.
Hope it helps.