Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Прошу взглянуть на предполагаемую структуру БД / 16 сообщений из 16, страница 1 из 1
23.08.2015, 12:11
    #39034511
palladin600
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу взглянуть на предполагаемую структуру БД
Добрые люди, не откажите в любезности, бросьте профессиональный взгляд на базу данных, которую я планирую создать для хранения телефонных номеров.
---
Каждый абонент может владеть несколькими телефонными номерами.

А есть менеджеры, которые объединяют номера в свои группы.

И вот ситуация:
звонит абонент какому-то менеджеру, и задача
запросить из базы все связанные номера этого абонента из группы, которая принадлежит этому менеджеру.



Это нормальная схема будет для оперативного получения необходимых номеров, зная только один из них?

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
23.08.2015, 13:42
    #39034537
Злой Бобр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу взглянуть на предполагаемую структуру БД
palladin600...
А есть менеджеры, которые объединяют номера в свои группы.
...
Это нормальная схема будет для оперативного получения необходимых номеров, зная только один из них?
Точно номера в группы, а не владельцев номера?..
Нет, не нормальная.
...
Рейтинг: 0 / 0
23.08.2015, 14:48
    #39034552
palladin600
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу взглянуть на предполагаемую структуру БД
Злой Бобр,

Ну тут у номеров нет владельца. Есть группа номеров только, а уже эту группу менеджер может обозвать любым именем.
А почему не нормальная? Что можно поправить/улучшить?
...
Рейтинг: 0 / 0
23.08.2015, 16:38
    #39034573
Злой Бобр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу взглянуть на предполагаемую структуру БД
palladin600,

Возьмите стандартный EAV. Вам думаю большего и не нужно. К примеру: Телефоны (Номер), Характеристики (ИД , Имя), ХарактеристикаТелефона (Телефоны.Номер , Характеристики.ИД , Значение). Из последней Значение можно сделать тоже таблицей как Характеристики, тогда туда ставишь ИД. Если необходимо видеть динамику то ставишь даты, кто поменял, ... Ну в общем все уже давно сделано до нас.
...
Рейтинг: 0 / 0
23.08.2015, 19:10
    #39034608
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу взглянуть на предполагаемую структуру БД
palladin600Злой Бобр,

Ну тут у номеров нет владельца. Есть группа номеров только, а уже эту группу менеджер может обозвать любым именем.

Как-то действительно непонятно со владельцем. Владелец и группа - это одно и то же? Не может быть ситуации, когда владельцу принадлежит 2 номера, причем один из них в группе у менеджера Пети, а другой - у менеджера Маши?
...
Рейтинг: 0 / 0
24.08.2015, 07:40
    #39034681
Serguei
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу взглянуть на предполагаемую структуру БД
palladin600бросьте профессиональный взгляд на базу данных, которую я планирую создать для хранения телефонных номеров.
---
Каждый абонент может владеть несколькими телефонными номерами.

А есть менеджеры, которые объединяют номера в свои группы.

И вот ситуация:
звонит абонент какому-то менеджеру, и задача
запросить из базы все связанные номера этого абонента из группы, которая принадлежит этому менеджеру.

Пока не на что бросать взгляд.
А задача которую вы обозначили - очень проста. Вы должны дойти до ее решения своим умом- иначе вам лучше забыть о базах данных.
...
Рейтинг: 0 / 0
29.08.2015, 21:28
    #39039228
palladin600
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу взглянуть на предполагаемую структуру БД
Кот Матроскинpalladin600Злой Бобр,

Ну тут у номеров нет владельца. Есть группа номеров только, а уже эту группу менеджер может обозвать любым именем.

Как-то действительно непонятно со владельцем. Владелец и группа - это одно и то же? Не может быть ситуации, когда владельцу принадлежит 2 номера, причем один из них в группе у менеджера Пети, а другой - у менеджера Маши?

Да, может такое быть. Например, на фирме, где есть 2 работника есть также общий телефонный номер. Работник этой фирмы позвонил менеджеру Пете с номера фирмы, а затем со своего личного. Петя обозначил эти 2 номера как одного клиента. Потом второй работник фирмы позвонил с номера фирмы и попал к Маше. И Маша обозначила этот номер как отдельного клиента.

Со структурой БД я кажется разобрался. Провожу пока испытания.
...
Рейтинг: 0 / 0
30.08.2015, 06:12
    #39039258
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу взглянуть на предполагаемую структуру БД
Злой Бобрpalladin600...
А есть менеджеры, которые объединяют номера в свои группы.
...
Это нормальная схема будет для оперативного получения необходимых номеров, зная только один из них?
Точно номера в группы, а не владельцев номера?..
Нет, не нормальная.

да, не нормальная.
структура не соответствует поведенному описанию.
...
Рейтинг: 0 / 0
31.08.2015, 09:53
    #39039554
palladin600
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу взглянуть на предполагаемую структуру БД
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
declare @Persons table(name varchar(10), id int)
insert into @Persons(name, id)
select 'Миша', 1 union all
select 'Ваня', 2 union all
select 'Катя', 3 union all
select 'Соня', 4 

declare @Comments table(ID int, _GroupID int, Comment varchar(20), _PersonID int)
insert into @Comments(ID, _GroupID, Comment, _PersonID)
select 1, 1, 'Звонил год назад', 1 union all
select 2, 2, 'Зачем-то звонил', 1 union all
select 3, 1, 'Звонок сегодня', 3 union all
select 4, 3, 'ЕщёИнформация', 4 union all
select 5, 6, 'Информация2', 2 

declare @Groups table(ID int, GroupID int, GroupOfNumbersID int, _Number varchar(12))
insert into @Groups(ID, GroupID, GroupOfNumbersID, _Number)
select 1, 1, 1, '3836 607-607' union all
select 2, 1, 1, '3836 744-477' union all
select 3, 1, 2, '4040 555-120' union all
select 4, 1, 1, '5511 123-123' union all
select 5, 2, 1, '4040 555-120' union all
select 6, 2, 1, '5511 123-123'

declare @Numbers table(Number varchar(12))
insert into @Numbers (Number)
select '3836 607-607' union all
select '3836 744-477' union all
select '4040 555-120' union all
select '5511 123-123' 



Как связать ещё Persons и Groups?
На самом деле саму группу организовывают Persons, т.е. Миша и Катя организовали Groups.ID=1, и вот надо чтобы коммент могли оставлять только они под этой группой.

А к базе на входе у нас есть только PersonID и Number, по PersonID надо выяснить в какой он группе (@Groups), согласно известного номера('5511 123-123').

И вот когда уже станет известно значение GroupID, а также известен Number (например, GroupID=1, Number='5511 123-123'), то можно отобрать все комментарии для этого номера + также связанные номера и их комменты.

--Что я пытаюсь сделать по пунктам:
--а) Выясняем группу, по ID person и согласно известному номеру;
--а) Получить ID группы связки номеров по имеющейся информации: SELECT GroupOfNumbersID FROM @Groups WHERE GroupID=1 AND Number='5511 123-123';
--б) Затем получить все номера и комментарии к ним;

Примерно это выглядит так, точнее, именно такой результат нужен на выходе:
Код: sql
1.
2.
3.
4.
SELECT g._Number, c.Comment, p.name
FROM @Comments c RIGHT JOIN @Groups AS g ON c._GroupID = g.ID LEFT JOIN
@Persons AS p ON c._PersonID = p.ID 
WHERE g.GroupOfNumbersID=(select g.GroupOfNumbersID from @Groups as g where g._Number='5511 123-123' and g.GroupID=1) AND g.GroupID=1;


Код: plaintext
1.
2.
3.
4.
 _Number		Comment			name 
3836 607-607	Звонил год назад	Миша
3836 607-607	Звонок сегодня		Катя
3836 744-477	Зачем-то звонил		Миша
5511 123-123	NULL			NULL

Номер может фигурировать только один раз в одной группе. Т.е. дубликатов одного и того же номера в @Groups.ID=1 не должно быть.

П. С. Люди, я не архитектор, сори, но очень прошу посодействовать, как делают спецы.
...
Рейтинг: 0 / 0
31.08.2015, 10:46
    #39039586
Злой Бобр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу взглянуть на предполагаемую структуру БД
palladin600,

Руками. Мы не телепаты. ХЗ что ты там наваял.
...
Рейтинг: 0 / 0
31.08.2015, 11:52
    #39039636
palladin600
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу взглянуть на предполагаемую структуру БД
Ну наваял я вот только то, что сверху, больше ничего нет, 4 таблицы:
@Persons
@Comments связь: _GroupID = @Groups.ID, _personID = @Persons.ID
@Groups связь: _Number = @Numbers.Number
@Numbers

Ага, может тогда просто добавить в @Persons поле _GroupID?
Просто мне кажется что слишком связи хрупкие какие-то.
...
Рейтинг: 0 / 0
31.08.2015, 12:27
    #39039660
Злой Бобр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу взглянуть на предполагаемую структуру БД
palladin600,

То что вверху - бред полный. Или не доходит?.. Ответ в ветке дан. Если не можешь сделать сам уже по сказанному - иди в "работу" и за денежку там за тебя сделают.
...
Рейтинг: 0 / 0
31.08.2015, 12:41
    #39039667
palladin600
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу взглянуть на предполагаемую структуру БД
Злой Бобрpalladin600,

То что вверху - бред полный. Или не доходит?.. Ответ в ветке дан. Если не можешь сделать сам уже по сказанному - иди в "работу" и за денежку там за тебя сделают.

В каком "вверху", конкретно?
Вверху 2 разные версии. В первом посте, и пост № 18089728.
...
Рейтинг: 0 / 0
31.08.2015, 18:58
    #39039985
Adx
Adx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу взглянуть на предполагаемую структуру БД
palladin600... Со структурой БД я кажется разобрался. ...

Зачем тогда в форум пишете? Структура неверная, но Вам нравится - Ваше право.
Пишите код, набьете шишек. За одного битого двух небитых дают.
...
Рейтинг: 0 / 0
31.08.2015, 21:35
    #39040038
mini.weblab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу взглянуть на предполагаемую структуру БД
palladin600,
сделай реляционную таблицу (1НФ)
будет проще разобраться со структурой
...
Рейтинг: 0 / 0
09.09.2015, 00:54
    #39046330
ShkrylAndrei
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу взглянуть на предполагаемую структуру БД
Не хватает таблицы отвечающей за владельца телефона, логика схемы приводит к PhoneNumbers, а кто владелец этого PhoneNumbers?, где таблица отвечающая за Информацию об абоненте?

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


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