SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 21.08.2016 23:08:15

sameuser
Участник
Зарегистрирован: 15.08.2016
Сообщений: 6

Все платежи в одной таблице?

Добрый вечер. Есть вопрос общего характера..

Предполагается в БД наличие нескольких сущностей, с которыми клиент осуществляет взаимодействие..

Пусть это будут: а) товары, б) контракты, в) услуги
Фирма или сервис занимается сразу всеми тремя направлениями smile

В каждом из трех случаев могут быть свои операции (причем эксемпляр сущности может содержать несколько расходных операций - какой-нибудь контакт, например, содержит оплату консультации, какую-нибудь комиссионный сбор и страховку..)


Есть 2 дальнейших пути организации расчетной части.

Или в каждом из 3 отношений создать по дополнительному атрибуту, который будет отвечать за расходные операции. На примере сущности "контракт" могут быть такие атрибуты добавлены:
консультация NOT NULL default 0
комиссия NOT NULL default 0
страховка NOT NULL default 0

Или создать еще одно 2 отношения, первое:

- ВнешнийКлюч_ТипОперации
- id записи,
- внешний ключ на id товара, контракта или услуги
- сумма
- и т.п.

Второе - таблица с типами операции, в которую надо будет выписать с каждой сущности все возможные варианты расходов типа:

ID  ________ НазваниеОперации

0001      ___ Оплата за товар
0002      ___ Оплата консультаций
0003      ___ Оплата страховки контракта
0004      ___ Оплата страховки товара
0005 ...


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

второй способ намного муторнее, но, наверное, и грамотнее.. Запрос на расчет баланса будет проще, но логика проекта станет намного сложнее в этом случае.. Потребуется больше записей, телодвижений..
А в проблемных случах (например, если товар потерялся по пути и нам нужно клиенту вернуть деньги на баланс, в первом случае мы могли бы грохнуть кортеж с записью этого товара и в будущем расчете он бы перестал участвовать; во втором же случае нам надо будет искать у товара нужную транзакцию и удалять ее или изменять..

Отредактированно sameuser (21.08.2016 23:12:32)

Неактивен

 

#2 22.08.2016 18:03:51

sameuser
Участник
Зарегистрирован: 15.08.2016
Сообщений: 6

Re: Все платежи в одной таблице?

С другой стороны... Нашел в инете одну базу)) http://anna.voelkl.at/uploads/magento/ce1922.png
И судя по приведенному ниже фрагменту, наверное, не стоит заморачиваться о том, о чем я пишу в данной теме.. Страшно представить, какой длины должны быть запросы для работы с такой БД.

http://s8.hostingkartinok.com/uploads/images/2016/08/eeb287832d645b90061ce80784f4cbf8.png

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson