2012-01-18 9 views
1

Для счета-фактуры мне нужно хранить несколько сумм. Чтобы упростить обслуживание, я решил создать одну таблицу, в которой я буду хранить типы сумм, а второй, в которой я буду хранить тип суммы и суммы. Входящие и исходящие счета имеют разные типы сумм, запрещенные законом. Внешний счет также имеет разные суммы.Несколько строк или несколько столбцов

Так что, я бы:

table invoice_amount_types(id, type_desc) 
table invoice_amounts(id, invoice_id, amount_types_id, amount) 

Но в этом случае я бы приблиз. 10 записей для каждого счета-фактуры. Я не уверен в влиянии функции поворота на выполнение моих запросов.

Что лучше спроектировать несколько таблиц, как это (счет-фактура и invoice_amounts _... таблицы будут находиться в отношении один к одному)

table invoice_amounts_incoming(invoice_id, amount_full, amount_0, amount_10, amount_22, amount_23, pre_vat10, pre_vat22, pre_vat23) 
table invoice_amounts_outgoing(invoice_id, amount_full, no_vat, no_vat_export, no_vat_transport, no_vat_other, amount_10, amount_22, amount_23, vat10, vat22, vat23) 

ответ

0

Первый способ (несколько таблиц) первоначально будет больше работы для правильной настройки, но это лучшее решение. В конечном итоге это сэкономит вам время и боль.

+0

сегодня, я могу подтвердить, что первый способ намного лучше (и я счастлив, что я решил таким образом ~ 6 лет назад) – davor

0

Я бы сохранил его нормализованным, иначе вы в конечном итоге добавите несколько столбцов больше и больше, и это просто будет катастрофой! Представьте, что сегодня у вас есть таблица с 5 столбцами, и у вас есть десятки процедур, которые ссылаются на все пять столбцов. Вы решили, что вам нужно добавить еще 5 столбцов, просто сделать это на стороне дизайна, но у вас есть проблема со всеми вашими процедурами и функциями, потому что вы никогда не ссылались на эти 5 новых столбцов.

Я голосую за нормализованную базу данных! Вы в конечном итоге упростите себя и своих будущих разработчиков, которые могут взаимодействовать с вашей системой в будущем.