0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 6
1

Простая БД для простой АЗС

23.11.2012, 12:47. Показов 3926. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Прошу помощи в создании и связывании таблиц. Натолкните на мысль, а то я уже в прострации. БД для АЗС. Имеется три таблицы: Rashgod, Privoz, Sklad.
Rashod: Privoz: Sklad:
Код Дата_пост
Дата_прод Время_пост
Время_прод Вид_топлива
№_колонки Количество
Вид_топлива Водитель
Количество
Цена
Стоимость
Оператор
С таблицей Sklad не определился еще, но в ней обязательно должно отображаться текущщее количество каждого вида топлива. Дальше не получается...

Добавлено через 19 минут
Редактированное сообщение:
Доброго времени суток. Прошу помощи в создании и связывании таблиц. Натолкните на мысль, а то я уже в прострации. БД для АЗС. Имеется три таблицы: Rashgod, Privoz, Sklad.

Rashod: Код/ Дата_прод/ Время_прод/ №_колонки/ Вид_топлива/ Количество/ Цена/ Стоимость/ Оператор
Privoz: Дата_пост/ Время_пост/ Вид_топлива/ Количество/ Водитель
Sklad:
С таблицей Sklad не определился еще, но в ней обязательно должно отображаться текущщее количество каждого вида топлива. Дальше не получается...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2012, 12:47
Ответы с готовыми решениями:

Создание простой АЗС
1. Создание программы - системы массового обслуживания 2. Экранное представление программы. Меню...

Cтруктура "АЗС", для каждой компании определить количество АЗС
На вход подаются сведения о ценах на бензин на автозаправочных станциях (АЗС). В первой строке...

Простой код, простая, но для меня скрытая ошибка
using System; using System.IO; using System.Linq; using System.Collections.Generic; namespace...

Простой массив-вектор (простая программа)
Помогите пожалуйста знающие люди составить такой вектор как навыделенный на скриншоте, попытался...

6
1074 / 987 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
23.11.2012, 15:15 2
Какую СУБД стремимся использовать?
...но в ней обязательно должно отображаться текущщее количество каждого вида топлива.
Правильно - отображаться, но не хранится. Текущее количество - это остаток. Остаток никогда не хранится в БД, а рассчитывается по разнице между приходом и расходом.
Натолкните на мысль...
Дальше не получается...
Непонятно на какую мысль надо наталкивать и чего дальше не получается?
Просьба какая-то размытая...

Добавлено через 19 минут
Если делать в СУБД Аксесс, то структура БД может выглядеть так:

Таблицы:

Колонки: (список всех номеров колонок)
- Код (счетчик);
- Номер (число); или (текст), если колонки могут иметь символьные номера

Виды_топлива: (хранится список всех видов топлива, которые продает АЗС)
- Код (счетчик)
- Наименование (текст)

Операторы:
- Код (счетчик)
- ФИО (текст)

Водилы:
- Код (счетчик)
- ФИО (текст)

Операции: (в этой таблице хранят все операции по АЗС)
- Код (счетчик);
- Дата_опер (дата/время);
- Время_опер (текст(5));
- Код_колонки (число);
- Код_Вида_топлива (число);
- Количество (число);
- Цена (число);
- Код_Оператора (число);
- Код_Водилы (число);
- Признак_опер (число); 0 - приход; 1 - расход (продажа)

Как видно, таблица Склад не нужна.
1
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 6
27.11.2012, 12:28  [ТС] 3
Какую СУБД стремимся использовать?
Использую ADO + Access, в книжке вроде все просто и наглядно...
Непонятно на какую мысль надо наталкивать и чего дальше не получается?
Просьба какая-то размытая...
Понимаешь, по-идее, это не большая и полноценная база данных, а, как я задумывал сначала, БД кассового аппарата.
Правильно - отображаться, но не хранится. Текущее количество - это остаток. Остаток никогда не хранится в БД, а рассчитывается по разнице между приходом и расходом.
Но ведь на реальной АЗС разница действительно хранится в хранилище, и потом, эту разницу так проще отображать. Я задумываю, что-бы рядом с главной формой на экране постоянно висела такая "напоминалка".
На этой "напоминалке" отображается цена каждого вида топлива и его текущее количество. Думаю это будет удобно для оператора.
СПС за таблицы, к сожалению это не мой конек. Вот если б, показал еще как их связать...
0
1074 / 987 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
27.11.2012, 12:39 4
и потом, эту разницу так проще отображать
Не понятно это утверждение: как "так проще"?
Я задумываю, что-бы рядом с главной формой на экране постоянно висела такая "напоминалка".
А вот это очень хорошая задумка и весьма полезная.
Только для такой "напоминалки" нет никакой необходимости хранить остатки (по иному: разницу, сальдо).
Как только произошла какая-либо операция (по приходу или расходу), в "напоминалке" в эту же секунду меняется отображение текущего состояния остатков по всем видам топлива (благо их не так много и можно по каждому показывать). Но для этого нет никакой нужды хранить остатки - их всегда можно и нужно рассчитывать.

Так что предлагаемая структура БД обыкновенная и типичная, практически, для учета любых видов товаров и продукции.
1
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 6
27.11.2012, 13:40  [ТС] 5
Не понятно это утверждение: как "так проще"?
Прописываю в коде: отобразить в "напоминалке" в Edit-е содержимое такой-то ячейки.
Как только произошла какая-либо операция (по приходу или расходу), в "напоминалке" в эту же секунду меняется отображение текущего состояния остатков
А, понял. Стоп. Не понял... Ведь остатки это результат расчета, арифметических действий и хранятся только в "напоминалке", а будут они там же при следующем старте программы?..
Вот еще вопрос, может не в тему... В отдельной форме "Привоз топлива" я прописываю что, когда и в какое время привезли. Текущие дата и время видно в лэйблах. Из этих-же лэйблов дата и время автоматом заносятся в таблицу, в текущую запись. Так вот, потом при просмотре таблицы дата отображается нормально, а время почему-то вместе с 30.12.1899, не пойму, в чем секрет... и как это исправить.
0
1074 / 987 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
27.11.2012, 14:08 6
Ведь остатки это результат расчета, арифметических действий и хранятся только в "напоминалке", а будут они там же при следующем старте программы?..
Наверное, придется еще не раз и не два говорить одно и то же:
нигде результат расчета не храниться, а только показывается. Рассчитали - показали.
При старте программы кто мешает вызывать расчет остатков и показать результат? А расчет будет основан на выборке из базы. Выбрали данные, рассчитали: от прихода вычли расход. Проще расчетов не бывает.

Проблему появления времени с датой можно решить разными способами.
- хранить время в виде строки типа "0952";
- перед отображением в гриде (или в другом компоненте) конвертировать дату со временем, оставляя только время;
- в полях датасетов есть свойство DisplayFormat с помощью которого можно "отрезать" дату от времени;
- точно такое же свойство есть в колонках DBGrid.
1
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 6
27.11.2012, 15:54  [ТС] 7
Фух. Наконец-то получилось. Большое спасибо.
- перед отображением в гриде (или в другом компоненте) конвертировать дату со временем, оставляя только время;
- в полях датасетов есть свойство DisplayFormat с помощью которого можно "отрезать" дату от времени;
- точно такое же свойство есть в колонках DBGrid.
Делал-делал - не вышло. То что прописываю в DisplayFormat (например ##.## или 00.00 или 00/00), оно же и появляется в таблице вместо реального времени. А вот хранить время в виде строки, а заодно и дату, получилось.
Все, я понял. Не надо загромаждать базу ненужными данными, спасибо.
0
27.11.2012, 15:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2012, 15:54
Помогаю со студенческими работами здесь

Определить для каждого вида бензина, сколько АЗС продают его дешевле всего
Напишите программу на Паскале! Решение есть, но оно некорреткно и программа работает не правильно!...

Напишите программу, которая будет определять для каждого вида бензина, сколько АЗС продают его дешевле всего.
Помогите написать программу со считыванием данных из prompt() и выводом в alert(). На...

Простой выбор простого движка для простого сайта с простой БД
Здравствуйте, уважаемые знатоки! Встала задача - нужно выбрать простой движок для сайта по аренде...

АЗС
Всем Здравствовать!!! Возжелал я на днях заняться продажей топлива и чтоб не ведрами наливать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru