Этого достаточно , но запрос окажется излишне трудным. Например, представьте, если кто-то спрашивает: «Сколько килограммов в тонне? Или в миллиграммах?». Вам нужно было бы иметь много строк с «килограммами», которые ссылаются друг на друга, или альтернативно выполнить запрос пару раз, пока не дойдете до нужного уровня.
Обычно вы делаете это в соединительной таблице. Таким образом, используя ваши имена столбцов, это будет что-то вроде:
Units (unit_ID, Name, unit_Type, unit_Group, IsDeleted)
IsFactorOf(unit_ID, parent_ID, factor)
, где в "IsFactorOf" unit_ID - это FK для дочерней единицы, parent_ID - это FK для родительской единицы (child-parent относится к элементу factor
- 'child is factor of parent'), и оба ключа создают PK.
Теперь вы можете определить, сколько килограммов в любой единице измерения доступно для одного и того же типа, введя IsFactorOf для каждого преобразования. Очевидно, вы получите двустороннее преобразование ...