powered by simpleCommunicator - 2.0.47     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос по проектированию базы
25 сообщений из 41, страница 1 из 2
Вопрос по проектированию базы
    #40022014
harvest6
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,
Помогите разобраться с структурой базы данных
1. две таблицы STOCK и BOND, каждая со своими характеристиками - это справочники. Они содержат в себе редко обновляемые поля.
2. таблица ASSET, которая должна содержать выбранные записи из таблиц STOCK и BOND. Это портфель/корзина..
3. таблица REESTR, которая представляет собой журнал записей ASSET.

В четвертой таблице ASSET_TYPE, это категории по сути там их две записи должно было быть: stock и bond.
Пока вижу только одно решение объединить таблицы STOCK и BOND в одну, но правда она станет такой огромной и нечитабельной, к тому же предполагается еще связи каждой из них с таблицами STOCK_RATE и BOND_RATE, содержащих историю изменения их котировок
Есть ли другие варианты?
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40022063
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
harvest6она станет такой огромной и нечитабельной

Боюсь, что на то, чтобы она стала огромной, на Земле не хватит акционерных обществ. Их,
подикося, и миллиарда не наберётся...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40022105
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
harvest6
3. таблица REESTR, которая представляет собой журнал записей ASSET.


Нафига она нужна?


harvest6
В четвертой таблице ASSET_TYPE, это категории по сути там их две записи должно было быть: stock и bond.
Пока вижу только одно решение объединить таблицы STOCK и BOND в одну, но правда она станет такой огромной и нечитабельной, к тому же предполагается еще связи каждой из них с таблицами STOCK_RATE и BOND_RATE, содержащих историю изменения их котировок
Есть ли другие варианты?


Есть бесчисленное количество вариантов. Смотря для чего?
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40022651
Stanislav P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Судя по схеме тут нужна одна таблица, и то в Excel. Так как ни одна из таблиц на схеме не несёт никакой полезной информации и не является отдельной сущностью.
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40022686
harvest6
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav PСудя по схеме тут нужна одна таблица, и то в Excel. Так как ни одна из таблиц на схеме не несёт никакой полезной информации и не является отдельной сущностью.

Все таблицы являются сущностями.
ASSET - сущность-супертип, которая содержит в себе общие атрибуты для каждой из сущностей-подтипов, а также сущность категорий ASSET_TYPE является атрибутом-дискриминатором, позволяющим различать конкретные экземпляры сущности-подтипа.
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40022723
Stanislav P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
harvest6
Все таблицы являются сущностями.
ASSET - сущность-супертип, которая содержит в себе общие атрибуты для каждой из сущностей-подтипов

Если ASSET - супертип, то она должна содержать все записи STOCK и BOND, а в STOCK и BOND должна входить информация только относящаяся к своему типу, но у тебя:
harvest6

2. таблица ASSET, которая должна содержать выбранные записи из таблиц STOCK и BOND. Это портфель/корзина..

И какой части твоего описания теперь верить? Если верить второму описания, то у тебя проблема со стрелочками от STOCK и BOND к ASSET на схеме.

К тому же:
harvest6
Пока вижу только одно решение объединить таблицы STOCK и BOND в одну, но правда она станет такой огромной и нечитабельной

Если ASSET - это супертип, то надо объединять три таблицы ASSET, STOCK, BOND в одну, так как на схеме не показана существенная разница между акцией и облигацией. Далее, если типов ASSET всего два, то таблица ASSET_TYPE вполне себе заменяется обычным выпадающим списком со значениями. В результате всё это сворачивается в одну таблицу Excel ну просто элементарно.
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40022726
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
harvest6
ASSET - сущность-супертип, которая содержит в себе общие атрибуты для каждой из сущностей-подтипов
В таком случае Stanislav P прав, вы перепутали направление связей на таблицах Stock и Bond.
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40022729
harvest6
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav PЕсли ASSET - супертип, то она должна содержать все записи STOCK и BOND, а в STOCK и BOND должна входить информация только относящаяся к своему типу
Верить этому
Stanislav Pпроблема со стрелочками от STOCK и BOND к ASSET на схеме.

Не нашел как в MySQL Workbench 8.0 CE как отразить категориальную связь
Stanislav PЕсли ASSET - это супертип, то надо объединять три таблицы ASSET, STOCK, BOND в одну, так как на схеме не показана существенная разница между акцией и облигацией. Далее, если типов ASSET всего два, то таблица ASSET_TYPE вполне себе заменяется обычным выпадающим списком со значениями.
На схеме не показана разница, но в тексте написано:
harvest6две таблицы STOCK и BOND, каждая со своими характеристиками
Общая характеристика пока только одна: валюта (не указана в схеме)
Объединить три таблицы в одну - это один из вариантов решения, но получится большая таблица с кучей пустых записей.
Типов ASSET может быть 15-20
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40022734
harvest6
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Предполагаю, вот как-то так должно быть
Это на логическом уровне
Пока не совсем понимаю как реализовать это на физическом уровне
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40022746
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой смысл обсуждать схему данных при полном отсутствии информации о домене, который эта схема должна представлять? Может у автора "BONDs' это апельсины, а "REESTR" это арбузы.
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40022885
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
harvest6
Предполагаю, вот как-то так должно быть
Это на логическом уровне
Пока не совсем понимаю как реализовать это на физическом уровне


Ты лучше скажи по русски че ты хочешь, на пальцах, предметно... Для начала...
Не нужно свои идеи воплощать в картинки, тем более ты не умеешь это делать...
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40022909
harvest6
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Логический уровень
1. таблица INSTRUMENT содержит записи всевозможных финансовых инструментов с одним общим атрибутом валюта (CUR_ID)
2. таблица CURRENCY - список валют, таблица CURRENCY_RATE - курсы валют
3. таблица CLASS - таблица категорий финансовых инструментов (на текущий момент 2: акции (STOCK) и облигации (BOND), будет больше)
4. таблица ASSET портфель выбранных финансовых инструментов из таблицы INSTRUMENT
5. таблица REESTR содержит операции с финансовыми инструментами из портфеля ASSET, например, покупка или продажа
6. таблица OPERATION - это типы операций (покупка, продажа и др.)
7. таблица STOCK (акции) - перечень акций со своими характеристиками (капитал, финансовые показатели)
8. таблица STOCK_RATE - курс акций
9. таблица BOND (облигации) - перечень облигаций со своими характеристиками (номинал, дюрация и др.)

Каким образом можно организовать связь между таблицами INSTRUMENT, BOND и STOCK на физическом уровне?
Один из вариантов это объединить все три таблицы (INSTRUMENT, BOND, STOCK) в одну таблицу, но в таком случае будет большое количество пустых полей, поскольку характеристики таблиц BOND и STOCK между собой не пересекаются.
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40022935
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
harvest6,

Это уже что-то работающее ? Хочется Усовершенствовать ? Тогда вопрос - в чем проблема, где слабое место, что не так ?
Или это стадия разработки ? Тогда нужна постановка задачи, например, - я хочу построить одноэтажный дом в чистом поле, а не набор слов типа: цемент, лопата, черепица, траншея, кирпич и т.д.

В любом случае, чтобы советовать, нужно знать и понимать первостепенную задачу, а не ваше видение её решения...
fkthat
Какой смысл обсуждать схему данных при полном отсутствии информации о домене, который эта схема должна представлять?
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40023276
Stanislav P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CURRENCY_RATE - странная и опасная таблица. Во-первых: курс - это отношение покупки-продажи одной валюты к другой. То есть, у рубля один курс по отношению к доллару и другой по отношению к евро. Соответственно в ней должно быть два поля валют и поле курса. И это в свою очередь приводит к интересным вещам в плане реализации логики работы - какую валюту ставить в первое поле, а какую во второе? И как после этого писать запросы к БД, когда часть валют в первом поле, а другая часть во втором поле.
Во-вторых, курс не статичен! Сейчас он такой, а через пять минут уже другой. А так как БД "проектируется" для финансовых операций, то нужно точно знать по какому курсу производить расчёт.
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40023474
harvest6
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav PCURRENCY_RATE - странная и опасная таблица.
В моем случае (основная валюта - российский рубль) никаких сложностей не возникает. А так, да, если делать возможность установки любой основной валюты возникает вопрос, но скорее это больше не к проектированию, а к приложению, которое будет работать с базой.
1. БД не проектируется для отображения именно биржевых курсов валют. Т.е. на каждую дату имеется только один курс иностранной валюты, выраженный в рублях, даже если это кросс-курс. По сути нужно знать эквивалентную рублевую стоимость актива, стоимость которого выражена в иностранной валюте.
2. Курс по которому производиться операция (покупка или продажа), т.е. стоимость актива в момент совершения операции учитывается в таблице REESTR (в иностранной валюте).
3. Стоимость актива, выраженного в иностранной валюте, учитывается в таблице STOCK_RATE.

Таким образом мы имеем на конец операционного дня: стоимость актива в иностранной валюте, которая определяется моментом закрытия биржи и стоимость иностранной валюты в рублях, устанавливаемой ЦБ в определенный момент времени. Исходя из этого мы имеем на конец дня стоимость актива в рублях, ну и, соответственно, разницу между реальной стоимостью актива и суммой на его покупку, хоть в иностранной валюте, хоть в рублях.
Надеюсь, смысл донес правильно))

А что касается физической реализации связи таблиц INSTRUMENT, STOC, BOND, CLASS в соответствии с логической моделью у меня пока тупик(
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40023552
Stanislav P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
harvest6
2. Курс по которому производиться операция (покупка или продажа), т.е. стоимость актива в момент совершения операции учитывается в таблице REESTR (в иностранной валюте).

Если курс учитывается в таблице REESTR, тогда зачем таблица CURRENCY_RATE? Это бессмысленное дублирование информации.
harvest6

3. Стоимость актива, выраженного в иностранной валюте, учитывается в таблице STOCK_RATE.

А почему не в REESTR? Опять не нужное разделение и дублирование.

Курс плавает сразу по трём таблицами!

harvest6
А что касается физической реализации связи таблиц INSTRUMENT, STOC, BOND, CLASS в соответствии с логической моделью у меня пока тупик(

Какова логическая модель? Только пожалуйста разговорным языком, без визуализации в схемах, а то опять могут появиться ошибки. И без перечисления списка таблиц и их назначения. Нужно описание физических вещей.
Ибо, если исходить из описания выше, то CLASS - это тип неких финансовых сущностей. Людям проще понимать, когда тип, называют типом, а не классом. STOCK и BOND - это известные и определённые типы финансовых сущностей. Таблица INSTRUMENT в таком случае просто лишняя.
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40023557
harvest6
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav PЕсли курс учитывается в таблице REESTR, тогда зачем таблица CURRENCY_RATE? Это бессмысленное дублирование информации.
В таблице REESTR цена покупки актива (акции, облигации)
в таблице CURRENCY_RATE - официальный курс валюты (доллар, евро)
Stanislav PА почему не в REESTR? Опять не нужное разделение и дублирование. Курс плавает сразу по трём таблицами!
в таблице STOCK_RATE - официальный курс актива (акции)
Это ВСЕ РАЗНЫЕ ЗНАЧЕНИЯ !!!

Stanislav PТаблица INSTRUMENT в таком случае просто лишняя.
т.е. решения, кроме как учитывать все финансовые инструменты в одной таблице нет?
Представляете сколько будет полей в такой таблице? и 90% будет пустых
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40023577
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
harvest6
в таблице CURRENCY_RATE - официальный курс валюты (доллар, евро

А зачем он вообще в данном контексте нужен? Да и какой это тогда "официальный" курс - курс ЦБ на позавчера, котировка МБ, или вообще курс обменника урюпинского Колхозбанка?
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40023578
Stanislav P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
harvest6
т.е. решения, кроме как учитывать все финансовые инструменты в одной таблице нет?
Представляете сколько будет полей в такой таблице? и 90% будет пустых

Решение есть, просто никто не знает как решать, когда нет информации. Из тех схем, которые выложены здесь, в которых кроме имени и ID нет ничего, не понятно, чем эти сущности отличаются и являются ли они сущностями вообще.
Поэтому люди требуют словесного описания физических вещей, без применения таблиц.
Примерно так: у человека есть финансовый портфель, в который он кладёт купленные акции, которые затем он может продать или получить дивиденды. Акции выпускают разные компании. В разные дни у акций могут быть цены покупки-продажи, отличающиеся от тех, по которым акции были куплены. Акции покупаются и продаются за рубли, но учёт стоимости ведётся в валюте которую выберет человек.
Либо, если со словами плохо, можно просто создать схему, куда добавить сущности по-отдельности и их все учитываемые атрибуты (просто создать квадратик и в него атрибуты, без всяких стрелочек между ними). Дать описание этим атрибутам и попросить всё это перевести в таблицы со связями.
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40023592
harvest6
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthatА зачем он вообще в данном контексте нужен? Да и какой это тогда "официальный" курс - курс ЦБ на позавчера, котировка МБ, или вообще курс обменника урюпинского Колхозбанка?

Вы не понимаете что такое официальный курс валюты?
Поясняю: это курс российского рубля, устанавливаемый Центральным Банком Российской Федерации по отношению к иностранным валютам на определенный период времени.
Соответственно, таблица содержит официальные курсы, например, с 01 января 2015 по 31 декабря 2019.
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40023594
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
harvest6
Вы не понимаете что такое официальный курс валюты?

Так а на кой леший он тут? Если какой-то инструмент на определенной площадке стоит сейчас 139 бирманских тугриков за лот, то он просто стоит 139 бирманских тугриков за лот и сколько это было японских рупий в прошлый китайский новый год никого, поверь, вообще не интересует. Для любого трейдера эта цена это вообще просто цифры.
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40023597
harvest6
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthatТак а на кой леший он тут? Если какой-то инструмент на определенной площадке стоит сейчас 139 бирманских тугриков за лот, то он просто стоит 139 бирманских тугриков за лот и сколько это было японских рупий в прошлый китайский новый год никого, поверь, вообще не интересует. Для любого трейдера эта цена это вообще просто цифры.
Трейдеров, наверное, да, не интересует, а инвесторов еще как интересует.
В конкретном примере, японца живущего в Японии еще как интересует сколько от потратил японских "рупий" на покупку актива стоимостью 139 бирманских тугриков и сколько этот актив стоит сейчас в тех же самых японских "рупиях"
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40023608
harvest6
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav PПоэтому люди требуют словесного описания физических вещей, без применения таблиц.
Изначальный вопрос был следующий:
Есть финансовые инструменты, принадлежащие разным категориям и обладающие различным набором характеристик. Каким образом можно реализовать их учет, кроме как в единой таблице.
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40023610
Stanislav P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
harvest6
Изначальный вопрос был следующий:
Есть финансовые инструменты, принадлежащие разным категориям и обладающие различным набором характеристик. Каким образом можно реализовать их учет, кроме как в единой таблице.

Любым, существует куча методик преобразования физических моделей в формат БД.
Чтобы дальше не продолжать не слишком информационно полезную дискуссию то тебе подойдёт EAV (Entity, Attribute, Value)
...
Рейтинг: 0 / 0
Вопрос по проектированию базы
    #40027548
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
harvest6,

и где у вас календарь на схеме?
...
Рейтинг: 0 / 0
25 сообщений из 41, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос по проектированию базы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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