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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

да, не нормальная.
структура не соответствует поведенному описанию.
...
Рейтинг: 0 / 0
Прошу взглянуть на предполагаемую структуру БД
    #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
Прошу взглянуть на предполагаемую структуру БД
    #39039586
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
palladin600,

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

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

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

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

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

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

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


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