Вы также захотите, чтобы это работало и с MB, поэтому я бы создал функцию для преобразования значения двух столбцов и единой системы обмена сообщениями в результат mb. Таким образом, функция умножит значение на 1 для МБ и 1000 для ГБ и 1000000 для ТБ. Затем вы можете заказать на функцию. Но это не будет идеальным исполнением, но с этим мета-стилем я не знаю точно, как еще его оптимизировать.
Чтобы расширить это, вы можете создать таблицу перевода для всех ваших UM, над которыми работала функция, чтобы она могла поддерживать это для других вещей, а не только для размера.
Итак, в качестве примера добавьте таблицу типа
|Type |UM |Magnitude|
______________________
|Size |GB |1000 |
|Size |MB |1 |
|Size |TB |1000000 |
|Weight|g |1 |
|Weight|kg |1000 |
Затем заставьте функцию найти UM и величину и умножить ее, чтобы вы всегда могли правильно упорядочить.
Также вы можете изменить свою таблицу атрибутов так, чтобы она указывала на тип измерения вместо того, чтобы иметь его; разделенный список.