|
|
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
Доброго дня. В общем есть персона. Она может иметь несколько телефонных номеров. Среди них есть 0 или 1 главный номер. Не хотелось бы к номеру привязывать булевые переменные "is_main" т.к потом прийдётся поддерживать их целостность. На сколько оправдана схема с промежуточной таблицей(в приложенном файле)? Если есть примеры разрешения таких ситуаций - буду признателен. Спасибо за внимание ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 09:46 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 09:46 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
может быть ситуация когда один телефон связан с двумя персонами, но только для одной он главный? попробуйте в вашей схеме написать запрос выборки всех телефонов персоны с указанием какой главный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 10:05 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
Не хватает вопроса: "А один телефон может быть привязан к нескольким персонам?" При утвердительном ответе на этот вопрос становится понятным, что идентификатор персоны в списке телефонов лишний. Тут нужна отдельная таблица ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 10:34 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 10:42 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
Хранить ID главного номера в карточке у персоны. Проблем с "главнотой" номера у разных персон не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 10:44 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
brick17На сколько оправдана схема с промежуточной таблицей Если ограничиться только такой постановкой задачи, то промежуточная таблица лишняя - достаточно ссылки у персоны на главный номер. Но если речь идёт о серьёзной задаче, а не о курсовой, то постановку стоит прорабатывать куда глубже. Просто для примера, у человека может быть личный мобильный (сохраняется, когда он переходит на ту же работу в другого контрагента), может быть служебный мобильный (отвязывается и остаётся в старой конторе), а может быть рабочий стационарный (стоит в отделе и к нему привязано ещё пять человек). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 13:43 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
LSVХранить ID главного номера в карточке у персоны. +100500 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 15:09 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
brick17На сколько оправдана схема с промежуточной таблицей(в приложенном файле)? ИМХО -я бы не стал городить лишнюю таблицу с таким маленьким функционалом. Варианта два на выбор: 1. признак главного номера в списке телефонов - и при изменениях контролировать признак 2. притянуть связь из телефонов в персону - он и будет главным Но как сказали выше рекомендуется проработать постановку задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 16:01 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
Хранить ID главного номера в карточке у персоны. Думал. не факт что ID будет не от чужого номера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2017, 10:41 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
Mr.Fontaine, Нет не может ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2017, 10:42 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
Serguei, 1 не хотелось бы из-за контроля 2 нужно контролировать что ID не от чужого номера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2017, 10:43 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
softwarerbrick17На сколько оправдана схема с промежуточной таблицей Если ограничиться только такой постановкой задачи, то промежуточная таблица лишняя - достаточно ссылки у персоны на главный номер. Но если речь идёт о серьёзной задаче, а не о курсовой, то постановку стоит прорабатывать куда глубже. Просто для примера, у человека может быть личный мобильный (сохраняется, когда он переходит на ту же работу в другого контрагента), может быть служебный мобильный (отвязывается и остаётся в старой конторе), а может быть рабочий стационарный (стоит в отделе и к нему привязано ещё пять человек). Ссылку на персону нужно контролировать в том моменте, что она может быть от чужого номера. Телефон привязан только к одному человеку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2017, 10:46 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
brick17Хранить ID главного номера в карточке у персоны. Думал. не факт что ID будет не от чужого номера Я в таких случаях строю суперключ и ссылаюсь по суперключу. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2017, 11:04 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
brick172 нужно контролировать что ID не от чужого номераЧто мешает ? Лень ? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2017, 11:05 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
brick171 не хотелось бы из-за контроля 2 нужно контролировать что ID не от чужого номера а вы думаете вам предложат магический способ, что "оно" само все будет проверять? ) что та, что другая проверка простая- не вижу проблем. Нужно только исходить из потребностей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2017, 12:56 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
brick17Ссылку на персону нужно контролировать в том моменте, что она может быть от чужого номера. С этим отлично справится внешний ключ, если включить в него person_id. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2017, 13:11 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
Sergueibrick171 не хотелось бы из-за контроля 2 нужно контролировать что ID не от чужого номера а вы думаете вам предложат магический способ, что "оно" само все будет проверять? ) что та, что другая проверка простая- не вижу проблем. Нужно только исходить из потребностей Неа. Я думаю или делать так как я сделал. - тогда сама бд ограничениями целостности это контролирует. И сильно ли это страшно Или проверять. Проблемка в том, что проверки нужны в каждой отдельной процедурке и дальше их можно тупо пропустить и вставить что-нибудь не целостное. А так база сама бьёт по рукам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2017, 13:28 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
LSVbrick172 нужно контролировать что ID не от чужого номераЧто мешает ? Лень ? :) Проблемка в том, что проверки нужны в каждой отдельной процедурке и дальше их можно тупо пропустить и вставить что-нибудь не целостное. А так база сама бьёт по рукам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2017, 13:29 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
Владимир П.brick17Хранить ID главного номера в карточке у персоны. Думал. не факт что ID будет не от чужого номера Я в таких случаях строю суперключ и ссылаюсь по суперключу. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Как уже говорил, можно упустить phone_id_main принадлежит к группе номеров именно этой записи persons. => нужно не забыть проконтролтировать в каждой процедуре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2017, 13:32 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
brick17LSVпропущено... Что мешает ? Лень ? :) Проблемка в том, что проверки нужны в каждой отдельной процедурке и дальше их можно тупо пропустить и вставить что-нибудь не целостное. А так база сама бьёт по рукам.ЯННП... :) зы: Иногда полезно отключить проверку и залить нецелостное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2017, 14:52 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
brick17, Если вы уже на двух понятиях Клиент-Телефон наставили себе кучу граблей (Заведите у Клиента три поля для телефона и не парьтесь), то что же будет дальше... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2017, 15:12 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
vmagЗаведите у Клиента три поля для телефона и не парьтесь Просто интересно: почему только 3, а не 5 и не 8? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2017, 15:40 |
|
||
|
Выделение одной главной сущности среди многих
|
|||
|---|---|---|---|
|
#18+
Serguei, 640Кб хватит всем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2017, 16:25 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=39424911&tid=1540192]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
177ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 10ms |
| total: | 290ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...