powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подскажите как правильно реорганизовать бд
6 сообщений из 6, страница 1 из 1
Подскажите как правильно реорганизовать бд
    #35955282
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!

Видимо неправильно организовал бд и теперь мучаюсь, но не знаю как сделать это по-другому, или правильнее, что-ли.
Итак, есть некая бд с документами, назовем ее Docs, в ней есть поля
---------------------------
DocID - идентификатор
Doc - документ
...
ChkdBy - кем проверено
Sign1By - кем подписано 1
Sign2By - кем подписано 2
---------------------------
Проблема в том, что в 3 последних поля вставляются ID работников, которые все числятся в одной бд Workers:
---------------------------
WorkerID
Name
Surname
ShortName
...
---------------------------
Теперь возникает проблема, когда нужно сделать выборку из бд Docs так, чтобы в последних трех полях были фамилии тех работников, чьи ID там стоят. И по ходу получается, что необходимо делать 3 выборки подряд, всякий раз делая JOIN Workers ON на другое поле, типа
1. SELECT ... Workers.Name as ChkdByFIO ... JOIN Workers ON Workers.WorkerID = Docs.ChkdBy
2. SELECT ... Workers.Name as Sign1ByFIO ... JOIN Workers ON Workers.WorkerID = Docs.Sign1By
3. SELECT ... Workers.Name as Sign2ByFIO ... JOIN Workers ON Workers.WorkerID = Docs.Sign2By
Проблему отчасти можно решить с помощью UNION, но мне интересно как можно, вернее даже нужно, реорганизовать бд чтобы решить эту проблему, ну, тоесть, какбы правильнее организовать бд. Если вообще другой подход тут применим. Конкретно надо решить вопрос как хранить ID тех работников, которые ChkdBy, Sign1By, Sign2By и тп, чтобы без проблем "доставать" фио их всех.

спасибо заранее

вфп9
...
Рейтинг: 0 / 0
Подскажите как правильно реорганизовать бд
    #35955323
CTAC-KO,

Код: plaintext
1.
2.
3.
4.
select docs.DocId, docs.Doc, W1.Name as ChkdByFIO, W2. as Sign1ByFIO,W2.Name as Sign2ByFIO ;
From Docs ;
Inner JOIN Workers as W1 ON W1.WorkerID = Docs.Sign2By ;
Inner Join Workers as W2 ON W2.WorkerID = Docs.Sign1By ;
Inner JOIN Workers as w3 ON W3.WorkerID = Docs.Sign2By
...
Рейтинг: 0 / 0
Подскажите как правильно реорганизовать бд
    #35955481
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во как! Не знал, не знал... пасибки!
т.е. по ходу можно не реорганизовывать свои бд...
...
Рейтинг: 0 / 0
Подскажите как правильно реорганизовать бд
    #35955492
CTAC-KOт.е. по ходу можно не реорганизовывать свои бд...Лучше в данном случае замените термин БД на термин таблица, а базой называйте совокупность таблиц и Вас будут лучше понимать.
...
Рейтинг: 0 / 0
Подскажите как правильно реорганизовать бд
    #35955768
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTAC-KO...т.е. по ходу можно не реорганизовывать свои бд...
Структура у Вас правильная за исключением того, что когда уволят этих работников - возникнут проблемы...
...
Рейтинг: 0 / 0
Подскажите как правильно реорганизовать бд
    #35956403
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я старательно исключал возможность физического удаления записей, особенно в работниках. Он остается в списке, но числиццо уволенным.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подскажите как правильно реорганизовать бд
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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