powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
25 сообщений из 27, страница 1 из 2
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33711892
as111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Как правильно поступить? Есть таблица в которой есть 7 столбцов в которых надо сохранить ФИО. Но необходимо, чтобы с этой ФИО была еще связана должность, т.к. она со временем у человека может измениться. Еще иногда необходимо искать пользователя по точному идентификатору, т.к. ФИО может совпадать.
Т.е. есть таблица ORDER:
Автор, Подписал, Согласовал, Утвердил, Бухгалтер, Отвечает, Исполнитель
Иванов; Иванов; Сидоров; Пушкин; Лермонтов; Петров; Козлов
Иванов; Иванов; Сидоров; Пушкин; Лермонтов; Петров; Козлов
Петров; Петров; Сидоров; Пушкин; Лермонтов; Петров; Козлов
Иванов; Иванов; Сидоров; Лермонтов; Лермонтов; Петров; Козлов
Иванов; Иванов; Сидоров; Пушкин; Лермонтов; Петров; Козлов

Но в данном случае мы не видим должности сотрудника, причем у одного и того же сотрудника могут быть разные должности, например в прошлом году он был бухгалтером, а в этом стал директором. Это надо отразить. Плюс на предприятии могут быть однофамильцы, например Ивановых 5 штук. Надо выбирать записи конкретного Иванова.

Как лучше сделать? Требования:
Пользователь на экран может до 250 записей, Пользователь может задавать список столбцов и их порядок, может задавать критерии поиска для каждого столбца. На экран надо выводить в зависимости от ситуации только ФИО или плюс еще должность.

Есть 3 варианта.
1. Вместо 7 столбцов сделать 21 т.е. в 3 раза больше. Идентификатор, ФИО, Должность
2. Использовать 7 столбцов но в каждый столбец записывать значения Идентификатор:ФИО:Должность, т.е. разделять их двоеточием
3. Вроде как самый правильный, но самый сложный с точки зрения программирования записывать в столбец ключ, сделать вторую таблицу PERSON и хранить значения там в виде: Ключ,Идентификатор, ФИО, Должность


Как лучше поступить? Первым делом конечно приходит 3 вариант, но как реализовывать следующие вещи:
1. Пользователь хочет увидеть 1 столбец
SELECT Автор FROM ORDER, PERSON WHERE ORDER.Автор = PERSON.ключ

2. А теперь он хочет видеть все столбцы и теперь о ужас надо формировать запрос:
SELECT * FROM ORDER, PERSON as P1, PERSON as P2, PERSON as P3, PERSON as P4, PERSON as P5, PERSON as P6, PERSON as P7 WHERE Автор = P1.ключ, Подписал=P2.ключ, Согласовал=P3.ключ, Утвердил=P4.ключ, Бухгалтер=P5.ключ, Отвечает=P6.ключ, Исполнитель=P7.ключ

3. А теперь он хочет переставить все столбцы местами и задать критерии. Запрос вообще станет ужасным.

Т.е. проблема в том, что пользователь динамически должен формировать перечень столбцов и не понятно как обрабатывать поля которые содержат кода. Т.е. с точки зрения дальнейшего программирования лучше использовать вариант с 21 столбцом…

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

1) Таблица "Сотрудники"
ID_Сотрудника,
Фамилия
Имя
Отчество
....
Дополнительная инфа (если нужна)
....
ID_Должность.

2) Таблица "Должности"
ID_Должность
Наименование

3) Таблица "История_Должностей"
Дата,
ID_Сотрудника,
ID_Должность

4) и, собственно таблица "ORDER"
Автор,
Подписал,
Согласовал,
....

и тд и тп, причем все эти поля содержат код сотрудника, который ссылается на таблицу "Сотрудники"
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33712177
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕсть 3 варианта.
1. Вместо 7 столбцов сделать 21 т.е. в 3 раза больше. Идентификатор, ФИО, Должность
2. Использовать 7 столбцов но в каждый столбец записывать значения Идентификатор:ФИО:Должность, т.е. разделять их двоеточием
3. Вроде как самый правильный, но самый сложный с точки зрения программирования записывать в столбец ключ, сделать вторую таблицу PERSON и хранить значения там в виде: Ключ,Идентификатор, ФИО, Должность
За 1 и 2, если так сделаете, вас следует расстрелять на месте :)
Единственный правильный - 3 вариант, причем когда наберетесь опытато поймете, что он самый простой

авторТ.е. проблема в том, что пользователь динамически должен формировать перечень столбцов и не понятно как обрабатывать поля которые содержат кода. Т.е. с точки зрения дальнейшего программирования лучше использовать вариант с 21 столбцом…
Кто вам сказал, что перечень столбцов вообще должен меняться и что от этого должен измениться запрос?
У вас всегда один запрос, который выносит все поля . А уж что хочет видеть пользователь решается настройками интерфейса - пусть хоть все колонки из грида уберет, если ему так лучше :)

-- Tygra's --
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33712190
as111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага а если пользователь захочет увидеть поля (должен быть интерфейс в котором он сможет это сделать)
Согласовал (фио), Утвердил(фио+должность), Бухгалтер (фио+должность)
где согласовал Я (т.е. проверка по ID)
Утвердил = директор (проверка по должности)
Бухгалтер = Иванов (проверка по фио)

Мне в этом случае надо динамически сгенерировать запрос и показать данные.
Я же с ума сойду программно генерировать такие запросы :-(
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33712213
as111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут наверное в основном администраторы баз данных :-)
Я понимаю, что с точки срения проектирования базы данных - надо исключать избыточность, но потом программировать???

Вариант всегда вытаскивать все поля. Хм, не думал. Может быть это действительно выход из ситуации...
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33712217
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как ни смешно, вариант с 21 полем реально используется в системах одновременно с нормализованной базой истории по людям и должностям. Смысл - зафиксировать значения исторических данных на момент подписания.

Про историю поищите на форуме.
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33712263
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
as111Ага а если пользователь захочет увидеть поля (должен быть интерфейс в котором он сможет это сделать)
Согласовал (фио), Утвердил(фио+должность), Бухгалтер (фио+должность)
где согласовал Я (т.е. проверка по ID)
Утвердил = директор (проверка по должности)
Бухгалтер = Иванов (проверка по фио)

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

Точнее понял, что проблема не в этой конкретной задаче, а в знании (незнании) sql и архитектуры построения систем.

Вы сначала почитайте литературу, примеры разные, а потом уже можно и чего-то писать по-настоящему.

Либо спрашивайте более конкретно, что вы не понимаете, чтобы к литературе на сразу отправили, а погодя :)

-- Tygra's --
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33712268
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
as111Ага а если пользователь захочет увидеть поля (должен быть интерфейс в котором он сможет это сделать)
Согласовал (фио), Утвердил(фио+должность), Бухгалтер (фио+должность)
где согласовал Я (т.е. проверка по ID)
Утвердил = директор (проверка по должности)
Бухгалтер = Иванов (проверка по фио)

Мне в этом случае надо динамически сгенерировать запрос и показать данные.
Я же с ума сойду программно генерировать такие запросы :-(Дык что для двух полей, что для 20 - методика то одна.
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33712474
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
as111у одного и того же сотрудника могут быть разные должности, например в прошлом году он был бухгалтером, а в этом стал директором. Это надо отразить.Отразить как? нужно показывать текущую должность или должность на момент подписания? мне кажется, второе...

Кстати, а фамилии у людей тоже меняются, например, при выходе замуж...
И, опять же, какую надо показывать фамилию? текущую или на момент подписания?
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33712479
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftнужно показывать текущую должность или должность на момент подписания?Кстати, той должности в текущее время может вообще не быть...
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33712636
Пара_Докс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор
Мне в этом случае надо динамически сгенерировать запрос и показать данные.
Я же с ума сойду программно генерировать такие запросы :-(


Нет ничего сложного. Делаешь фильтры в клиентском ПО. Потом значения выбранных фильтров подставляешь в нужные места в текст запроса.
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33712701
as111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все надо показывать на момент подписания.
Если бы был один статический запрос, то не было бы ни каких вопросов.

ORDER
A1 A2 A3 A4 A5 A6 A7
1 2 2 1 2 1 1
2 3 4 5 1 1 2
2 3 4 5 2 1 3
3 3 4 5 1 2 4
1 2 3 4 5 3 5

PERSON
id FIO job
1 Иванов программист
2 Петров программист
3 Сидоров программист
4 Пушкин программист
5 Петров программист
6 Петров Директор
7 Васин бухгалтер
8 Пупкин дворник

Получается примерно так?

SELECT P1.FIO, P1.job, P2.FIO, P2.job, P3.FIO,P3.job, P4.FIO, P4.job, P5.FIO,P5.job, P6.FIO,P6.job, P7.FIO, P7.job
FROM [ORDER], PERSON as P1, PERSON as P2, PERSON as P3, PERSON as P4, PERSON as P5, PERSON as P6, PERSON as P7
WHERE ORDER.A1=P1.id AND ORDER.A2=P2.id AND ORDER.A3=P3.id AND ORDER.A4=P4.id AND ORDER.A5=P5.id AND ORDER.A6=P6.id AND ORDER.A7=P7.id


Проблемы две.
1. В таблице ORDER будет 1,5 млн записей в таблице PERSON будет 20000. База MS SQL. Это будет основная таблица с которой все пользователи будут работать очень интенсивно. мах количество записей 250
2. Т.к. пользователи будут работать с системой очень часто, то для них планируется сделать возможность создавать ФИЛЬТРЫ. Т.е. сам поьлзователь выбирает какие столбцы показывать, по каким критериям фильтровать и как сортировать.

Хотел сделать чтобы такие запросы формировались динамически. Но не очень хочется париться программировать.
Вот тут умные люди посоветовали сделать один запрос. Но показывать только те столбцы которые необходимо. Ну уж добавить туда фильтрацию и сортировку - труда не составит.


Соответсвенно вопрос это нормально присоединять каждый раз 11 таблиц? 4 таблицы это другие. Т.е. будут примерно такие таблицы по количеству сторк.
1500000
20000
20000
20000
20000
20000
20000
500
20
2500000
800

которые необходимо объединить и вывести только необходимые строки.

Вот в чем проблема.
Вот и сижу думаю как лучше сделать...
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33712781
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
as111Все надо показывать на момент подписания.
Если бы был один статический запрос, то не было бы ни каких вопросов....
Вот и сижу думаю как лучше сделать...
Вставлю свои 5 копеек...
Хранимые процедуры рулят... Они хранятся на сервере и выполняются, как правило, быстрее, нежели запросы, напрямую инициированные клиентом... Кроме того, туда можно поместить часть логики обработки данных на клиенте...

А обрабатывать "ad-hoc" (т.е. произвольные) запросы - это надо сильно поизвращаться и сделать что-то типа "построителя запросов" (пример: построитель запросов в Access'e)... Кроме того, юзверь должен тогда иметь представление о внутренней структуре БД и каждой таблицы, связях и т.д... А это, как правило, доступно очень немногим...
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33712879
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
as111
Соответсвенно вопрос это нормально присоединять каждый раз 11 таблиц? 4 таблицы это другие. Т.е. будут примерно такие таблицы по количеству сторк.
1500000
20000
20000
20000
20000
20000
20000
500
20
2500000
800

которые необходимо объединить и вывести только необходимые строки.

Вот в чем проблема.
Вот и сижу думаю как лучше сделать...
Соединять можно столько таблиц, сколько надо для дела...

Лекции по проектированию БД у Вас были? Тогда необходимо их вспомнить...
Если нет, то скажу, что это все можно соптимизировать. Например так:
Пусть таблица ORDER имеет 1,5 млн. записей. Но ведь пользователю-то нужны не все они, а штук 100 максимум, например за некоторый интервал дат. Соответственно в запросе у нас будет участвовать не вся таблица ORDER, а выражение (select * from order where <условие отбора>). То же самое и по другим таблицам. В итоге получим не такие уж и страшные цифры...
Кроме того, можно таблицы соединять и во вложенных запросах (подзапросах)...
Тогда получим твой запрос, например, в следующем виде:

select bla-bla-bla
from (select * from order where <условие отбора>) ord, person P2,.....
where ord.aaa=p2.aaa ....
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33712894
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот, Станислав C. уже ответил.

2 as111
Если вы собирались фильтровать все это на клиенте - тогда только книжки вам помогут. Лучше пока и не начинайте.

Кстати, это курсовая или что?

-- Tygra's --
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33712896
as111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.

С процедурами вроде тоже понятно. Если будет решено сделать один субер-бупер запрос, то так и придется сделать...

Построителя запросов как такового не будет.
Если кто работал с MS Project, то там можно выбрать необходимы столбцы, фильтрацию и сортировку. Вот надо сделать что-то подобное.

Если бы в строках хранилось то что должно показываться, то было бы проще.
Видятся еще 2 пути
1. Написать супер запрос. Но не понятно как будет с произвоизводительностью.
2. Сделать итоговую таблицу куда выводить все данные, но не хочется. Будет избыточность + могут быть несоответсвия.
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33713211
as111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не... пусть если хотят убивают, но в данном случае похоже надо делать 21 столбец :-(

Ну вот для примера. Сделали 2 таблицы. А теперь нам надо вывести все строки чтобы высветилось ФИО и ДОЛЖНОСТЬ для каждого столбца и если в столбце P1.FIO фамилия Иванов.
Такой запрос

SELECT P1.FIO, P1.job, P2.FIO, P2.job, P3.FIO, P3.job, P4.FIO, P4.job, P5.FIO, P5.job, P6.FIO, P6.job, P7.FIO, P7.job
FROM [ORDER] AS ORDER1, PERSON AS P1, PERSON AS P2, PERSON as P3, PERSON AS P4, PERSON AS P5, PERSON AS P6, PERSON AS P7
WHERE [ORDER1].A1=P1.id And [ORDER1].A2=P2.id And [ORDER1].A3=P3.id And [ORDER1].A4=P4.id And [ORDER1].A5=P5.id And [ORDER1].A6=P6.id And [ORDER1].A7=P7.id AND P1.FIO = 'Иванов'

Не будет работать.

А как тогда вывести на экран эти данные? Какой будет запрос?
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33713333
sergey888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо делать 3 таблицы
1.Справочник сотрудников
2.Справочник типов операций(статусов)
3.Таблица непосредственно для хранений изменений статуса документа.

поля:
id
id_user
id_doc
id_oper
date_time
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33713367
as111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я сейчас заплачу!!!

Да мне не важно сколько таблиц. Надо 3 бусть будет 3. Мне надо чтобы вместо чего-то что записано в столбец вывелось ФАМИЯ И ДОЛЖНОСТЬ.
Т.е. в таблице ORDER 7 столбцов, а мне надо вывести 14
ФИО, Должность, ФИО, Должность, ФИО, Должность, ФИО, Должность...


Как я с самого начала и говорил можно сделать 3 варианта, но если там хранить код, то я не знаю как вывести вместо кода 2 значения.

Т.е. нужен пример запроса который будет это делать, а так как записей будет очень много, то надо не просто запрос, а такой который будет эффективно работать!

Вместо кода подставлять 1 значения примеры есть в любой книге уж не надо меня туда тыкать. Надо именно вместо 7 значений вывести 14, 21, 28 записей.

Вот и все.
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33713374
as111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
14, 21, 28 подразумевалось столбцов...
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33713442
sergey888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select u.fio, u.dolznost, d.doc_no, d.doc_date,t.oper_name, o.date_time
from users u, document d, type_oper t, oper_hist o
where o.id_user=u.id_user
and o.id_doc=d.id_doc
and o.id_oper=t.id_oper


Только результат будет выведен в виде таблицы истории, а не наоборот, как предполагал автор.

т.е. столбцы будут строками
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33713466
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не хочу пугать, но все гораздо хуже:) Эти 11 джойнов еще должны учитывать историю:
авторВсе надо показывать на момент подписания.
Потом, этого сегодня у Вас 7 ролей, а если их число будет слегка расти, юрист там добавиться?
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33713487
sergey888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потом, этого сегодня у Вас 7 ролей, а если их число будет слегка расти, юрист там добавиться?

Предлагаемый мною вариант прекрасно с этим справляется
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33716617
as111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.

Но выводить в строки, это все таки немного не совсем то. Хотя понятное дело любую таблицу можно повернуть.
В моем случае мне надо выводить основную таблицу и прибавлять к ней дополнительные столбцы.

Не мог понять, почему выводятся одинаковые должности – просто выводимые записи совпали, так что у всех были одинаковые должности. Вот уж повезло! Расставил должности, чтобы можно было наблюдать выводимую картину. Плюс построитель запросов Access – великая сила! :-)

Получилось 2 варианта. Посоветуйте, какая между ними разница? Какой вариант лучше? Как можно оптимизировать с учетом очень большого количества записей в таблицах. В ORDER 1,5млн, а в PERSON 20тыс.
Фильтрация может быть задана по любому столбцу таблицы ORDER

1 Вариант
SELECT ORDER.price, ORDER.order_key, PERSON.FIO, PERSON.job, PERSON_1.FIO, PERSON_1.job, PERSON_2.FIO, PERSON_2.job, PERSON_3.FIO, PERSON_3.job, PERSON_4.FIO, PERSON_4.job, PERSON_5.FIO, PERSON_5.job
FROM (((((([ORDER] INNER JOIN PERSON ON ORDER.A1 = PERSON.id) INNER JOIN PERSON AS PERSON_1 ON ORDER.A2 = PERSON_1.id) INNER JOIN PERSON AS PERSON_2 ON ORDER.A3 = PERSON_2.id) INNER JOIN PERSON AS PERSON_3 ON ORDER.A4 = PERSON_3.id) INNER JOIN PERSON AS PERSON_4 ON ORDER.A5 = PERSON_4.id) INNER JOIN PERSON AS PERSON_5 ON ORDER.A6 = PERSON_5.id) INNER JOIN PERSON AS PERSON_6 ON ORDER.A7 = PERSON_6.id;



2 Вариант
SELECT ORDER.price, ORDER.order_key, PERSON.FIO, PERSON.job, PERSON_1.FIO, PERSON_1.job, PERSON_2.FIO, PERSON_2.job, PERSON_3.FIO, PERSON_3.job, PERSON_4.FIO, PERSON_4.job, PERSON_5.FIO, PERSON_5.job
FROM [ORDER], PERSON, PERSON AS PERSON_1, PERSON AS PERSON_2, PERSON AS PERSON_3, PERSON AS PERSON_4, PERSON AS PERSON_5
WHERE ORDER.A1=PERSON.id AND ORDER.A2=PERSON_1.id AND ORDER.A3=PERSON_2.id AND ORDER.A4=PERSON_3.id AND ORDER.A5=PERSON_4.id AND ORDER.A6=PERSON_5.id

Спасибо
...
Рейтинг: 0 / 0
Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
    #33718539
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишите уж лучше сразу правильно, чтобы потом и самому разобраться:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
select
 O.Price,
 O.Order_Key,
 FIO1 = P1.FIO,
 Job1 = P1.Job,
 FIO2 = P2.FIO,
 Job2 = P2.Job,
 FIO3 = P3.FIO,
 Job3 = P3.Job,
 FIO4 = P4.FIO,
 Job4 = P4.Job,
 FIO5 = P5.FIO,
 Job5 = P5.Job,
 FIO6 = P6.FIO,
 Job6 = P6.Job
from Order O
 join PERSON P1 on (P1.ID = O.A)
 join PERSON P2 on (P2.ID = O.A1)
 join PERSON P3 on (P3.ID = O.A2)
 join PERSON P4 on (P4.ID = O.A3)
 join PERSON P5 on (P5.ID = O.A4)
 join PERSON P6 on (P6.ID = O.A5)
WHERE //ваше условие поиска (по дате, фио или еще чему)
Лучше только не А1... а так и назвать PersonID1, ....

-- Tygra's --
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как спроектировать таблицу из 7 столбцов каждый из столбцов которой обращается к другой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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