powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование_БД_некорректность_аномалии
13 сообщений из 13, страница 1 из 1
Проектирование_БД_некорректность_аномалии
    #38935348
guly2808
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

Помогите разобраться:

Даны три таблицы - A_ROAD, A_NOD, A_PCH

Таблица A_NOD имеет внешний ключ A_ROAD_ID и ссылается на таблицу A_ROAD

Таблица A_PCH имеет внешний ключи A_ROAD_ID и A_NOD_ID и ссылается на таблицу A_ROAD и A_NOD соответственно.

Получается два пути привязки ПЧ к Дороге, чем это грозит? Я понимаю относительную некорректность таких привязок, но не могу проанализировать/смоделировать ситуацию, при которой эта некорректность/аномалия появится!
...
Рейтинг: 0 / 0
Проектирование_БД_некорректность_аномалии
    #38935377
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гугли "денормализация"
...
Рейтинг: 0 / 0
Проектирование_БД_некорректность_аномалии
    #38935860
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guly2808Получается два пути привязки ПЧ к Дороге, чем это грозит? Я понимаю относительную некорректность таких привязок, но не могу проанализировать/смоделировать ситуацию, при которой эта некорректность/аномалия появится!

Ничем не грозит. Ты можешь проверять это чем-то типа триггеров.

А вообще -- ПЧ привязана к нодам дороги или ко всей дороге целиком.
Вполне себе допустимо.
Например, города есть территориального и федерального подчинения.
...
Рейтинг: 0 / 0
Проектирование_БД_некорректность_аномалии
    #38936555
guly2808
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

Спасибо :)
...
Рейтинг: 0 / 0
Проектирование_БД_некорректность_аномалии
    #38936574
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНичем не грозит.Типа успокоил.

https://ru.wikipedia.org/wiki/Денормализация
Следует помнить, что денормализация всегда выполяется за счёт повышения риска нарушения целостности данных при операциях модификации. Поэтому денормализацию следует проводить в крайнем случае, если другие меры повышения производительности невозможны. Идеально, если денормализованная БД используется только на чтение.
Пока пути привязки ПЧ к Дороге совпадают, то ничем не грозит (лишнее место на дублирующую инфу не в счет),
как только это произойдет (например в результате бага), отчетики собирающие инфу по одному пути будут отличаться от собирающих по другому пути и никто не сможет объяснить почему.
Наглядный пример - рассказ Задорнова про два девятых вагона: девятый вагон это не тот, который перед десятым, а тот который после восьмого.

Вы, конечно, можете утверждать что уж у вас то, такого никогда не случится, но здоровая паранойя требует внесения в регламент процедуры проверок на целостность и починки будя она (целостность) нарушена.
...
Рейтинг: 0 / 0
Проектирование_БД_некорректность_аномалии
    #38936619
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257,

значит я пока не вижу никакую денормализацию.
...
Рейтинг: 0 / 0
Проектирование_БД_некорректность_аномалии
    #38936630
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv значит я пока не вижу никакую денормализацию.издеваешься?

Если результаты запросов

Код: sql
1.
2.
select * from a_pch p
join a_road r on r.id=p.a_road_id


никогда не будут сравниваться с результатами запросов
Код: sql
1.
2.
3.
select * from a_pch p
join a_nod n on n.id=p.a_nod_id
join a_road r on r.id=n.a_road_id



или таблицы не будет обновлятся то тогда да - никакой аномалии не появится.
...
Рейтинг: 0 / 0
Проектирование_БД_некорректность_аномалии
    #38936684
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257MasterZiv значит я пока не вижу никакую денормализацию.издеваешься?

Если результаты запросов

Код: sql
1.
2.
select * from a_pch p
join a_road r on r.id=p.a_road_id


никогда не будут сравниваться с результатами запросов
Код: sql
1.
2.
3.
select * from a_pch p
join a_nod n on n.id=p.a_nod_id
join a_road r on r.id=n.a_road_id



или таблицы не будет обновлятся то тогда да - никакой аномалии не появится.

кто тебе сказал, что они должны сравниваться?
кто тебе сказал, что поля зависимы друг от друга?
...
Рейтинг: 0 / 0
Проектирование_БД_некорректность_аномалии
    #38936688
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я еще раз предлагаю рассмотреть аналогию
с городами, субъектами федерации и отношениями "находится в" и "подчиняется".

город может находиться в одном субъекте федерации, а подчиняться другому.
...
Рейтинг: 0 / 0
Проектирование_БД_некорректность_аномалии
    #38936817
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guly2808Даны три таблицы - A_ROAD, A_NOD, A_PCH

Таблица A_NOD имеет внешний ключ A_ROAD_ID и ссылается на таблицу A_ROAD

Таблица A_PCH имеет внешний ключи A_ROAD_ID и A_NOD_ID и ссылается на таблицу A_ROAD и A_NOD соответственно.

Получается два пути привязки ПЧ к Дороге, чем это грозит? Я понимаю относительную некорректность таких привязок, но не могу проанализировать/смоделировать ситуацию, при которой эта некорректность/аномалия появится!

Если речь идет о железной дороге, то ПЧ подчиняется не ноду напрямую, а подразделению НОДа- Служба пути называется.

Ну а для вашей картинки я бы сделал проще:
1) тип предприятий (дорога, нод, ПЧ)
2) предприятие с указанием типа и связь сама на себя (вышестоящее предприятие)
гибкая структура получается.
...
Рейтинг: 0 / 0
Проектирование_БД_некорректность_аномалии
    #38937299
guly2808
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Serguei, то есть дорогу, нод, пч - поместить в одну таблицу?
Насчет связи самих на себя, можно подробнее? А то не очень поняла(
...
Рейтинг: 0 / 0
Проектирование_БД_некорректность_аномалии
    #38937534
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv кто тебе сказал, что они должны сравниваться?
кто тебе сказал, что поля зависимы друг от друга? Это вы меня спрашиваете? Пусть ТС отвечает
Вы хотите аномалий. Их есть у меня.

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

guly2808 Насчет связи самих на себя, можно подробнее?структура типа id primary key, parent_id references id - самая минималистичная, минимум таблиц, минимум избыточности, легкое добавление уровня иерархии, неограниченное число уровней иерархии.
Расплатой являются иерархические запросы - штука более сложная чем простые джойны, более привязана к конкретной СУБД.
...
Рейтинг: 0 / 0
Проектирование_БД_некорректность_аномалии
    #38938682
guly2808
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257,

спасибо огромное!!)
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование_БД_некорректность_аномалии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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