Relational theory claims that every relvar ("table") has a related predicate that determines the meaning of the tuples in it. This predicate should be part of the official database documentation, so no one who really manages the documentation can have any excuse for being "misinterpreted" (unless, of course, the documentation is incomplete).
By including the definition of units in this predicate (for example, “Human length ... is KNIFE”, “Measured temperature was ... KELVIN”, ...) reaches this completeness and avoids these rather ugly attributes (“columns”).
I don’t understand why “just storing numbers” (in a standard unit agreed by all users) would be “not easy”.
If foobaricity exists as a whole, and someone comes up with a new modular fluffy perception, then someone will first have to officially establish the correspondence between the quantities of foobaricity and the quantities of fluffyperception in any case, or anything that he states will / can be understood by someone whatever.
EDIT
I saw that this added: "I need to save information about the source block."
Nothing prevents you from doing this. Two additional columns (original quantity and original unit name) along with the "canonical" value. You can limit the “original device name” to as strong or weak as you want.
source share