|
|
|
Структура БД для счетчиков
|
|||
|---|---|---|---|
|
#18+
Помогите нормализовать базу по счетчикам воды. Дом. N квартир. В каждой квартире 1 или 2 счетчика воды. Количество счетчиков меняться со временем не может. Каждый счетчик имеет серийный номер SN (на практике могут быть не уникальны). Любой счетчик может быть заменен. В таблицу заносятся даты ввода счетчиков в эксплуатацию - Дата ввода 1 раз в месяц заносятся показания счетчиков. Нужно: - Получать показания счетчиков за выбранный месяц - Получать количество счетчиков и из SN для квартиры - Получать последние показания счетчиков для квартиры - Получать все показания счетчиков для квартиры. Получаем: Показания( Номер квартиры , Количество счетчиков, SN счетчика 1, SN счетчика 2, Показание счетчика 1, Показание счетчика 2, Дата ввода1, Дата ввода 2) Нормализуем: Квартира( Номер квартиры , Количество счетчиков, SN счетчика 1, SN счетчика 2, Дата ввода1, Дата ввода 2) Показания( Номер квартиры ,Показание счетчика 1, Показание счетчика 2, Дата ввода показаний ) Для реальной БД этого достаточно. Две таблицы связаны по уникальному ключу номер квартиры. У таблицы Показания ключ из двух полей. Но как бороться с проблемой замены счетчиков? Как только счетчик меняется, в таблицу 'Квартира' заносится новая запись с новым SN счетчика. Можно конечно ключом сделать связку: Номер квартиры + SN счетчика 1 + SN счетчика 2. Но очень неудобно затем по датам определять всю цепочку замен счетчиков. Может быть ввести в таблицу 'Квартира' дополнительное поле в котором в случае замены хранить номер следующей записи для этой квартиры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2012, 20:47 |
|
||
|
Структура БД для счетчиков
|
|||
|---|---|---|---|
|
#18+
rsa_mНормализуем: Недостаточно нормализовал. Выноси счётчики в отдельную таблицу. Показания - возможно в таблицу со счётчиками, возможно - в отдельную. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2012, 21:11 |
|
||
|
Структура БД для счетчиков
|
|||
|---|---|---|---|
|
#18+
rsa_mДля реальной БД этого достаточно. Две таблицы связаны по уникальному ключу номер квартиры.Для реальной БД понадобятся десятки таблиц для такой задачи :-) Для учебной задачи достаточно: Квартира(Номер квартиры) Счётчики(SN счетчика) Счётчики_В_Квартире(Номер счётчика в квартире, Номер квартиры, SN счетчика, Дата ввода, Дата вывода) Показания(Номер счётчика в квартире, Показание счетчика, Дата ввода показаний) Ещё вариант: Квартира(Номер квартиры) Счётчики(SN счетчика) Счётчики_В_Квартире(Номер квартиры, SN счетчика, Дата ввода, Дата вывода) Показания(Номер квартиры, SN счетчика, Показание счетчика, Дата ввода показаний) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2012, 22:01 |
|
||
|
Структура БД для счетчиков
|
|||
|---|---|---|---|
|
#18+
alexeyvgСчётчики_В_Квартире(Номер квартиры, SN счетчика, Дата ввода, Дата вывода) Не, даже в учебной задаче всё-таки нужна таблица "Проведённая_Работа", куда заносятся установки, снятия, ревизии и ХЗ что ещё. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2012, 22:42 |
|
||
|
Структура БД для счетчиков
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovalexeyvgСчётчики_В_Квартире(Номер квартиры, SN счетчика, Дата ввода, Дата вывода) Не, даже в учебной задаче всё-таки нужна таблица "Проведённая_Работа", куда заносятся установки, снятия, ревизии и ХЗ что ещё.Не, для учебной слишком круто... Учебные счётчики в ваакуме не устанавливают и не проверяют :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2012, 23:40 |
|
||
|
Структура БД для счетчиков
|
|||
|---|---|---|---|
|
#18+
alexeyvgКвартира(Номер квартиры) Счётчики(SN счетчика) Счётчики_В_Квартире(Номер счётчика в квартире, Номер квартиры, SN счетчика, Дата ввода, Дата вывода) Показания(Номер счётчика в квартире, Показание счетчика, Дата ввода показаний) Спасибо за совет. Добавление поля Дата вывода, действительно помогает решить проблемы при заменах счетчика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2012, 00:11 |
|
||
|
Структура БД для счетчиков
|
|||
|---|---|---|---|
|
#18+
Есть схожа проблемма, только показания счетчиков в 1 квартире. 1. Есть данные: а) Дата снятия показаний. б) Показания счетчиков воды (Ванная, Туалет - Холодная и Горячая вода). ВаннаяГорячая, ВаннаяХолодная. ТуалетГорячая, ТуалетХолодная. Эти показания уже есть и их менять нельзя. Они уже есть в таблице, в которой: ДатаСнятия показаний, ВаннаяГорячая, ВаннаяХолодная, ТуалетГорячая, ТуалетХолодная. 2. Надо: а) Создать форму в которой будут отображаться данные: - Дата прошлого показания счетчиков - Дата теперешнего показания счетчиков - Данные счетчиков за прошлый раз: ВаннаяГорячая, ВаннаяХолодная, ТуалетГорячая, ТуалетХолодная - Тарифы: на горячую и холодную воду, используемый до 20-го числа месяца - Тарифы: на горячую и холодную воду, используемый после 20-го числа месяца (в зависимости от даты). б) Ввод в форму данных: - Данные счетчиков на настоящий момент: ВаннаяГорячая, ВаннаяХолодная, ТуалетГорячая, ТуалетХолодная - Расчет разницы (или сколько было потреблено воды отдельно по ванной и отдельно по туалету) - Сколько было потреблено воды в месяце (по квартирно мне не надо! это для 1-й квартиры, а не для целого дома!) - Сумма, котрую надо заплатить за воду. Сохранить все вновь полученные данные в ту же самую таблицу. Вот вроде бы и все. Что не так в моей логике? Все логично? Как по мне вполне. Если что-то не логично - подскажите. Теперь я хочу это все сделать в Аксцессе: 1. Создал и занес данные в таблицу "Показания Счетчиков": - Дата снятия показаний, ВаннаяГорячая, ВаннаяХолодная, ТуалетГорячая, ТуалетХолодная. 2. Создал и занес данные в таблицу "Тарифы": - Горячая вода до 20, Холодная вода до 20, Горячая вода после 20, Холодная вода после 20. 3. Создал промежуточную таблицу "Итоги": - Дата снятия показаний, ВаннаяГорячаяТекущ, ВаннаяХолоднаяТекущ, ТуалетГорячаяТекущ, ТуалетХолоднаяТекущ, ВаннаяГорячаяПрошлМесяц, ВаннаяХолоднаяПрошлМесяц, ТуалетГорячаяПрошлМесяц, ТуалетХолоднаяПрошлМесяц, ИтогоПотребленоГорячей, ИтогоПотребленоХолодной, РазницаГорячейВоды, РазницаХолоднойВоды, СуммаЗаГорячую, СуммаЗаХолодную, ОбщаяСумма. 4. Создаю запрос на эти самые таблицы: Показания Счетчиков, Тарифы, Итоги. 5. Пытаюсь наладить форму, чтоб отображалось в ней это все - не выходит. Пытаюсь наладить связи между таблицами - не выходит (ну это вы видите в прошлых постах). Ну а про водворение данных назад в таблицу Показания Счетчиков - нечего и говорить - мрак. Вот моя логика - теперь давайте покромсаем ее (в пределах разумного). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 18:05 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=43&tid=1541434]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 341ms |

| 0 / 0 |
