В системе мне нужно сохранить данные для некоторых счетов за коммунальные услуги за электричество, воду, переработку, чтобы в будущем делать отчеты и калибровки.Дизайн БД для счетов за коммунальные услуги
Сегодня каждый счет за коммунальные услуги имеет несколько разных сообщений/строк. Например electricity
законопроект может включать fixed fee
(сумму за DATERANGE законопроекта) consumption
(обычно выставлен счет за кВтч электроэнергии, м3 для воды и т.д.) taxes
(может быть энергетические налоги)
Как я хочу, чтобы иметь возможность использовать базу данных позже, чтобы искать данные для разных периодов времени, типы счетов счетов и т. д. Мне нужно придумать прочный дизайн db. Итак, нижеследующее будет моим началом.
`utility_bill`
`id` int(11)
`vendor_id` int(11)
`type_id` int(11)
`notes` varchar(255)
`date_issued` date
`date_due` date
`utility_bill_rows`
`id` int(11)
`utility_bill_id` int(11)
`name` varchar(64)
`startdate` date
`enddate` date
`units` double
`unit_price` double
`unity_type` varchar(16)
Пример данных:
`utility_bill`
1 2 2 Electricty bill (august) 2016-09-01 2016-09-30
`utility_bill_rows`
1 1 Fixed fee 2016-08-01 2016-08-31 31 10 days
2 1 Consumption 2016-08-01 2016-08-31 500 1 kwh
3 1 Government taxes 2016-08-01 2016-08-31 500 0.1 kwh
В приведенном выше примере bill_total
будет 310 + 500 + 50 = 860
Не все коммунальные платежи основаны на ежемесячных циклов. В некоторых случаях это может быть 2016-07-01 to 2016-09-30
, 2016-08-15 to 2016-09-15
и так далее. Поэтому я думал о добавлении нового столбца в таблицу utility_bill_rows
под названием daily_cost
, которая была бы просто (units * unit_price)/(enddate - startdate in days)
.
Так что любые предложения к вышеуказанному дизайну и мыслям очень ценятся. Должен ли я сделать некоторые дополнения к конструкции, которые могут быть полезны позже, когда
Этот вопрос представляется более подходящим для http://codereview.stackexchange.com/ –
У вас есть вопросы? Просить мнения или идеи не то, что мы делаем на SO .... –
Как уже упоминалось внизу. Должен ли я вносить изменения, чтобы иметь возможность извлекать данные в будущем. Должен ли я сохранять данные на основе суточной стоимости, или это плохой подход. – Andreas