Как улучшить имя поля - PullRequest
       9

Как улучшить имя поля

0 голосов
/ 09 октября 2011

Я пытаюсь улучшить имя поля, чтобы оно было более понятным, что это значит ... имя поля в порядке? или что можно изменить, чтобы сделать это более очевидным?

mysql> select * from order_items;
+----+----------+--------+----------+------------+-------+
| id | order_id | name   | quantity | item_price | total |
+----+----------+--------+----------+------------+-------+
|  1 |        5 | Item 1 |        2 |       3.00 |  6.00 |
|  2 |        5 | Item 2 |        1 |       2.00 |  2.00 |
+----+----------+--------+----------+------------+-------+

mysql> select * from orders;
+----+---------+---------+-----------------+---------------+----------------+----------+---------------+------------+----------------+------------+----------------------+--------------------+--------------------+----------------------+
| id | shop_id | user_id | shipping_method | shipping_fees | payment_method | card_fee | commision_fee | item_total | customer_total | shop_total | shop_total_remaining | our_commission_net | our_commission_vat | our_commission_gross |
+----+---------+---------+-----------------+---------------+----------------+----------+---------------+------------+----------------+------------+----------------------+--------------------+--------------------+----------------------+
|  5 |      29 |       9 | delivery        |          1.00 | card           |     0.50 |            13 |       8.00 |           9.50 |       9.00 |                 7.83 |               1.17 |               0.23 |                 1.40 |
+----+---------+---------+-----------------+---------------+----------------+----------+---------------+------------+----------------+------------+----------------------+--------------------+--------------------+----------------------+

Описание полей:

  • item_total Общая стоимость из order_items.order_id = 5

  • customer_total Общая стоимость для клиента (item_total + card_fee + shipping_fee)

  • shop_total Общая сумма заказа для магазина (item_total + shipping_fees)

  • shop_total_remaining Общая сумма, оставшаяся для возврата в магазин (shop_total - our_commission_net)

  • our_commission_net Комиссию сделаю (commission_fee * shop_total / 100)

  • our_commission_gross Комиссия с НДС (our_commission_net + our_commission_vat)

Я добавил ненужные поля?

Я использовал PHP для расчета стоимости.

1 Ответ

1 голос
/ 09 октября 2011

Я вижу, что вы на самом деле добавили много полей, которые там не нужны.Подумайте об этом так: если вы можете объяснить, как вычислить поле, применяя какие-либо операции к другим полям, то это вычисляемое поле.

Эти поля не должны быть частью минималистического дизайна, поскольку они могутбыть получены путем работы над другими полями.Давайте рассмотрим самый сложный пример в ваших таблицах.

Если вы хотите получить сумму всех элементов для заказа в вашем примере, вам просто нужно выбрать поле item_total.Но что будет, если его там не было?Не могли бы вы получить этот номер?Да.Вот как:

select sum(oi.total) from order_items oi
inner join order o on (oi.order_id = o.id)
where (o.id = 5)

Теперь мы избавились от одного поля, но можем ли мы удалить поле order_items.total и все же получить этот результат?Да.Потому что это тоже расчетное поле.Вот как:

select sum(oi.quantity * oi.item_price) from order_items oi
inner join order o on (oi.order_id = o.id)
where (o.id = 5)

Применяя аналогичный шаблон, вы можете избавиться от всех полей, которые вы упомянули.И тогда у вас будет минимальный дизайн.

Одна вещь, на которую стоит обратить внимание, состоит в том, что вычисление полей является более сложным, чем просто запрос значения, поэтому они более дороги с точки зрения использования процессора и HD.Преимущество вычисляемых полей состоит в том, что вы избегаете избыточности данных и также экономите немного места:)

...