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

Дайте пожалуйста совет )

1. Есть две сущности А и Б
2. Сущность А может быть в разных ролях по отношению к сущности Б
Например:
Алексей может быть другом, зятем и начальником для Александра.

Вопрос:
для каждого отношения делать отдельную таблицу?
например:
1. таб1 - друг
2. таб2 - зять
3. таб3 - начальник

Количество ролей конечно.

Спасибо.
...
Рейтинг: 0 / 0
Как правильно спроектировать ?
    #38873982
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лобовое решение - третья таблица A_id, Б_id, role_id
...
Рейтинг: 0 / 0
Как правильно спроектировать ?
    #38873987
vladka63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257Лобовое решение - третья таблица A_id, Б_id, role_id

получается, что итого четыре таблицы?:
табл1 - сущности А
табл2 - сущности Б
табл3 - роли
табл4 - отношения

так?
...
Рейтинг: 0 / 0
Как правильно спроектировать ?
    #38873988
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladka63 так? Да. Это лобовое, самое простое решение. Вам судить насколько оно вам подходит, ибо исходных данных мало.
...
Рейтинг: 0 / 0
Как правильно спроектировать ?
    #38873990
vladka63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257vladka63 так? Да. Это лобовое, самое простое решение. Вам судить насколько оно вам подходит, ибо исходных данных мало.

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



Нет, отдельное поле.
...
Рейтинг: 0 / 0
Как правильно спроектировать ?
    #38874089
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladka63получается, что итого четыре таблицы?:
табл1 - сущности А
табл2 - сущности Б
табл3 - роли
табл4 - отношения

так?
Если говорить о конкретном примере- про связи между людьми, то нет не так.

табл 1: "Человеки"
табл 2: "Роли"
Табл 3: "Отношения" - по тому принципу что вам привели, только две связи из табл 1 +роль.
...
Рейтинг: 0 / 0
Как правильно спроектировать ?
    #38874105
vladka63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergueivladka63получается, что итого четыре таблицы?:
табл1 - сущности А
табл2 - сущности Б
табл3 - роли
табл4 - отношения

так?
Если говорить о конкретном примере- про связи между людьми, то нет не так.

табл 1: "Человеки"
табл 2: "Роли"
Табл 3: "Отношения" - по тому принципу что вам привели, только две связи из табл 1 +роль.

Да, спасибо!
Когда на листе бумаги нарисовал таблицы, понял, что должна быть реализована схема описанная вами.
...
Рейтинг: 0 / 0
Как правильно спроектировать ?
    #38874114
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladka63SERG1257Лобовое решение - третья таблица A_id, Б_id, role_id

получается, что итого четыре таблицы?:
табл1 - сущности А
табл2 - сущности Б
табл3 - роли
табл4 - отношения

так?

Можно и без таблиц "роли" и "отношения", но тут есть риск нарваться на нарушение 1НФ.

Код: plaintext
1.
2.
А( a_id -> a_att1, a_at2 ...)

B( b_id -> b_att1, b_att2, ... a_as_role_1_id, a_as_role_2_id,  a_as_role_3_id,  a_as_role_4_id,  a_as_role_5_id )



Но будет ли это нарушением 1НФ --- вот в чём вопрос.
А будет или нет -- зависит от твоей предметной области.

Ты должен как минимум рассмотреть следующие вопросы:
Будут ли в твоей БД динамически (в процессе работы БД) добавляться/удаляться роли ?

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

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


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