powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Не могу сообразить про связи таблиц
11 сообщений из 11, страница 1 из 1
Не могу сообразить про связи таблиц
    #39140141
kans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Сразу уточню, что новичок в проектировании.
Столкнулся вот со сложной для моего понимания задачей. Хотя она и простая вроде бы.
Рассматривается пример с торговым автоматом, торгующим напитками в бутылках.
Требуется спроектировать базу, с помощью которой можно было бы продавать напитки по следующим условиям:
1. Деньги покупателя падают в отдельный кошелек.
2. Имеется кошелёк автомата с запасом монет.
3. Продажа осуществится при удовлетворении 3 условий: денег в кошельке клиента достаточно для выбранного напитка, напиток существует и его достаточно, в кошельке автомата достаточно монет для сдачи.
4. Естественно, после продажи деньги из кошелька клиента переходят в кошелёк автомата, но не ранее.

Вопрос для меня состоит в том, чтобы грамотно создать таблицы и - ГЛАВНОЕ - связи между ними.
Алгоритм я понимаю и процедуры дают правильные результаты. Однако нужно представить диаграмму БД. И тут только я понял, что чего-то не улавливаю.
Диаграмму БД прикладываю. Она без связей.
...
Рейтинг: 0 / 0
Не могу сообразить про связи таблиц
    #39140145
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kansВопрос для меня состоит в том, чтобы грамотно создать таблицы и - ГЛАВНОЕ -
связи между ними.
В данном случае таблицы не нужны, это задача не для реляционной БД.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Не могу сообразить про связи таблиц
    #39140425
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых, не увидел в таблицы с выбранными напитками, хотя в задании про них чего-то там говорится kans3. Продажа осуществится при удовлетворении 3 условий: денег в кошельке клиента достаточно для выбранного напитка,
потому интересно посмотреть на процедуры, которые работают и самостоятельно определяют чего хочет клиент.
Во-вторых, вообще учитывая, что kansАлгоритм я понимаю и процедуры дают правильные результаты. хотелось бы посмотреть все процедуры, например как автомат считает количество денег, которые закинул клиент в свой кошелёк, как из кошелька автомата выдаётся сдача.
...
Рейтинг: 0 / 0
Не могу сообразить про связи таблиц
    #39140442
Гхостик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Суррогатные ключи опускаю.

Код: plaintext
1.
2.
3.
4.
5.
Покупатель (имя, текущий остаток на кошельке)
Бутылка (название, цена, текущий остаток) -- если не делать изменение цены, что потребует введения партий либо расчета суммы покупки по fifo/lifo
ПоступлениеБутылки (бутылка, дата, количество)
ПродажаБутылки (бутылка, дата, покупатель)
ПоступлениеВКошелекПокупателя (покупатель, дата, сумма)
ПоступлениеВКошелекАвтомата (дата, сумма)

Если делать на перспективу, то завести еще и

Код: plaintext
1.
2.
ДвижениеВКошелькеПокупателя (дата, сумма, основание)
ДвижениеВКошелькеАвтомата (дата, сумма, основание)

Куда движения будут порождаться автоматически на основании продажи и пополнения кошелька, и которые будут менять текущий остаток.
...
Рейтинг: 0 / 0
Не могу сообразить про связи таблиц
    #39140476
kans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы!
По поводу выложить процедуру - это решение для тестового задания. Если я его сейчас выложу, то могу быть дисквалифицирован. Да и по самой идее теста ведь я его должен пройти сам, пусть даже если решение и не верно.
Уточню, что решение о напитке процедура не принимает.
В процедуру приходит выбор покупателя из внешнего ПО, то есть внешняя переменная. В моём случае - строковая.
Монеты в кошелёк покупателя на этот момент уже положены и процедура только проверяет состояние строк таблицы с соответствующими идентификаторами.
То есть в этом плане задачка для первоклассника, как я и говорил.
Далее, исходя из цены напитка и количества денег в обоих кошельках, принимается решение о возможности/невозможности сделки и в случае возможности выдаётся сдача из кошелька автомата по "жадному" алгоритму.

Насчёт приведённой схемы БД: такой подход более похож на интернет торговлю, чем на уличный автомат.
Однако тут получаются связанные таблицы, о чем я и спрашивал. Спасибо большое за помощь!
Возможно стоит притянуть за уши автомат к интернет торговле с "личными счетами" пользователей.
...
Рейтинг: 0 / 0
Не могу сообразить про связи таблиц
    #39140478
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гхостик, думается мне, что таблица с именами покупателей тут совсем лишняя.

P.S. Обычно, когда покупаешь бутылку газировки в автомате, то автомат требует только денег не спрашивая имени.
...
Рейтинг: 0 / 0
Не могу сообразить про связи таблиц
    #39140485
Гхостик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mr.FontaineГхостик, думается мне, что таблица с именами покупателей тут совсем лишняя.

P.S. Обычно, когда покупаешь бутылку газировки в автомате, то автомат требует только денег не спрашивая имени.
Я иначе интерпретировал "Деньги покупателя падают в отдельный кошелек" - как то что кошелек привязан к покупателю, типа терминалов оплаты с идентификацией.

Немного подумав, похоже что в автомате просто два кошелька. Да, тогда таблички будут другие.
...
Рейтинг: 0 / 0
Не могу сообразить про связи таблиц
    #39140488
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kans, ну собственно говоря, понятно. Действительно, сначала кидаешь монетки, затем нажимаешь кнопку с названием напитка.
А по связям тебе Дмитрий уже ответил: никаких связей тут нет, задача не по теме реляционных БД.
...
Рейтинг: 0 / 0
Не могу сообразить про связи таблиц
    #39140489
kans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гхостик, прошу прощения, не подумал, что эта фраза может быть понята двояко.
Я конечно имел в виду, что в автомате есть два кошелька: кошелёк автомата и кошелёк покупателя. Но у всех покупателей кошелёк конечно один и тот же, поскольку они покупают воду по очереди и с каждым операция доводится до конца, то есть до опустошения кошелька покупателя.
...
Рейтинг: 0 / 0
Не могу сообразить про связи таблиц
    #39140537
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.FontaineГхостик, думается мне, что таблица с именами покупателей тут совсем лишняя.

P.S. Обычно, когда покупаешь бутылку газировки в автомате, то автомат требует только денег не спрашивая имени.

А было бы удобно, скажем, внести а автомат некий аванс с получки, а затем пусть автомат распознает посетителя (можно просто в лицо), и выдает напитки в счет аванса.

Если покупатель прилично выглядит - то можно и в кредит.
...
Рейтинг: 0 / 0
Не могу сообразить про связи таблиц
    #39140625
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kans у всех покупателей кошелёк конечно один и тот же
Обычно он называется "монетоприёмник".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Не могу сообразить про связи таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]