|
0 / 0 / 0
Регистрация: 04.01.2016
Сообщений: 6
|
|
Проектирование БД19.09.2017, 05:24. Показов 1398. Ответов 11
Метки нет (Все метки)
Добрый день я не очень хорошо разбираюсь в SQL запросах по помогите пожалуйста с правильной организацией бд и запроса на выборку данных из нее:
Суть проблемы: существуют несколько таблиц с прикрепленным к ним одним справочником как сделать выборку с объединение всех полей таблиц не объеденяя повторяющие поля таблицы справочника пример: Organization{_id;Name}(таблица-справочник) PrimariTable{_id;...;id_organization;id_ other...;} Avto{_id;...;id_organization} Other(другие таблицы-справочники){_id;Name} P.S. я не очень хорошо разбираюсь в SQL запросах поэтому сильно не пинать и по возможности объяснять на пальцах без использования заумных терминов
0
|
|
| 19.09.2017, 05:24 | |
|
Ответы с готовыми решениями:
11
Проектирование БД Проектирование БД
|
|
0 / 0 / 0
Регистрация: 04.01.2016
Сообщений: 6
|
|
| 19.09.2017, 16:12 [ТС] | |
|
Хорошо задам вопрос по другому как синтаксически правильно составить запрос Select так чтобы объединить данные двух таблиц использующие один справочник но имеющие разные значения из этого справочника
0
|
|
|
1 / 2 / 3
Регистрация: 24.06.2016
Сообщений: 47
|
||||||
| 19.09.2017, 17:46 | ||||||
|
В твоем случае следует почитать про LEFT JOIN - левостороннее внешнее объединение
пример и объяснение тут... Можно еще почитать ТУТ
0
|
||||||
|
0 / 0 / 0
Регистрация: 04.01.2016
Сообщений: 6
|
||||||
| 20.09.2017, 14:25 [ТС] | ||||||
|
Про join запросы я читал вот тут http://zametkinapolyah.ru/zame... elect.html так как работаю с SQlite, вообще прежде чем задавать глупые вопросы на форумах я сначала читаю всю доступную информацию в интернет не все бывает конечно понятно сразу. Вот пример моего запроса он конечно не правильный потому как не понимаю как правильно написать.
0
|
||||||
|
1 / 2 / 3
Регистрация: 24.06.2016
Сообщений: 47
|
|
| 20.09.2017, 15:09 | |
|
В твоем случае LEFT JOIN наверно будет актуальнее
Тогда получишь список пропусков с информацией о них
0
|
|
|
0 / 0 / 0
Регистрация: 04.01.2016
Сообщений: 6
|
|
| 20.09.2017, 16:02 [ТС] | |
|
Хорошо что бы было наглядно понятно в чем у меня проблема (либо я не правильно спроектировал БД) прикладываю файл с диаграммой связей таблиц в бд
0
|
|
|
1 / 2 / 3
Регистрация: 24.06.2016
Сообщений: 47
|
||||||
| 20.09.2017, 17:14 | ||||||
Сообщение было отмечено Aioloz как решение
Решение
Что должно быть на выходе может не совсем понял
Я бы сделал так
Поля не такие вывел, но идею я думаю задал Добавлено через 7 минут А что содержит таблица DayTime? В остальном проектировка понятна и с моей точки зрения правильна (Если не рассматривать предметную область)
1
|
||||||
|
0 / 0 / 0
Регистрация: 04.01.2016
Сообщений: 6
|
|
| 20.09.2017, 18:15 [ТС] | |
|
Большое спасибо именно 11 и 12 пункты в sql запросе меня и интересовали и именно как использовать правильно псевдонимы,а в таблице я условно указал поля, а в dayTime планирую хранить промежутки времени в которых действует те или иные виды пропусков. Любопытно стало про предметную область? что в ней не так? И почему именно Left а не inner если головной(Primary) таблицей является Propusk.
0
|
|
|
1 / 2 / 3
Регистрация: 24.06.2016
Сообщений: 47
|
|
| 20.09.2017, 18:54 | |
|
DayTime мне не понятен метод хранения информации. Для чего так?
Я не особо хотел вникать в предметную область, но коль пошел разговор спрошу. Что это за объекты? и почему срок действия нельзя хранить в пропуске? Это же вроде логично. Это видимо специфика программы или это задание в уч.заведении? Про отличие LEFT и INNER JOIN я думаю стоит почитать тут Вкратце при использовании Inner join если в какой то из полей (к примеру id_Organization) будет пусто в результат эта строка не попадет совсем
0
|
|
|
0 / 0 / 0
Регистрация: 04.01.2016
Сообщений: 6
|
|
| 22.09.2017, 06:56 [ТС] | |
|
Ну во первых это не учебное задание это лично моя программа которую я хочу грамотно написать. я не планирую вообще что id_organization когда либо будет пустым это будет считаться ошибкой программы(ошибкой целостности таблицы) его первая строка всегда будет иметь значения по-умолчанию(программно, либо с помощью триггеров я это буду контролировать пока не выбрал вариант). Во вторых в DateTime я планирую иметь значения по-умолчанию плюс добавлять по необходимости новые. Пример: Пропуск действует: 1 год(unix время integer 8907000...)-постоянный;Дневной-действует с 10.00-12.00;13.00-19.00;Null(нет);Null(нет); или (круглосуточный с 00.00-24.00;null(нет);nulll(нет);null(нет)). По другом никак не реализуешь на базе БД или я не дружу с логикой. Да и подумал что логичнее вообще убрать связь id_organization, а тупо программно заполнять данное поле из данной таблицы(меньше будет проблем с редактирование(удалением)существующих записей (каскадно связанными полями))
0
|
|
| 22.09.2017, 06:56 | |
|
Помогаю со студенческими работами здесь
12
Проектирование БД Проектирование БД
Проектирование БД Проектирование БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|