#sql #oracle
#sql #Oracle
Вопрос:
Я искал это и не нашел решения, которое было бы применимо к моему сценарию.
Я создаю базу данных разработчиков игр и хочу сгенерировать таблицу подключений:
У меня есть следующее:
Employee
(
name, date of birth, department they work at, task they do
)
Department
(
department name
)
Task
(
task name
)
и мне нужно сгенерировать таблицу подключений, которая показывает, какой department
вклад в который task
вносит. Я бы сделал это, проверив для каждого employee
их department
(только один) и task
(также только один) и после совпадения, department
способствует этому task
.
Это идея, но я должен понять, как ее закодировать с помощью Oracle
Комментарии:
1. Что вы подразумеваете под «таблицей подключений»? является ли это таблицей txn или выходной таблицей, в которой хранятся данные из трех таблиц выше?
2. Извините, что сбиваю с толку. Я изучаю этот предмет на своем родном языке, и прямой перевод учителей на английский, по-видимому, не самый лучший. При рисовании диаграммы E / R это соединение будет иметь форму ромба. Итак, таблица, которая сообщает, какие соединения существуют между двумя таблицами сущностей.
Ответ №1:
SELECT DISTINCT "department they work at", "task they do"
FROM Employee;
Комментарии:
1. Да, это четкий ответ, спасибо, что поделились. Теперь я только хотел бы знать, как присвоить значения таблице?
2. ссылка Я пытаюсь это сделать таким образом, но я получаю ошибки типа
not enough values
3. Еще один комментарий, я решил его, я просто удалил явно бесполезный столбец из моей таблицы. Дополнительная помощь не требуется, спасибо за всю помощь.
Ответ №2:
Сначала вам следует разработать диаграмму сущность-взаимосвязь, в которой перечислены сущности, которые вы используете, и с какими атрибутами (и какими первичными ключами), а также отношения между этими сущностями. Отношения могут быть: 1-к-1, 1-ко-многим, многие-к-1 и многие-ко-многим. В последнем случае (отношение M:N) реализация в таблицах базы данных требует дополнительной таблицы для записи такого отношения M:N. Способ реализовать отношение 1: N в таблице заключается в добавлении внешнего ключа в дочерней таблице к первичному ключу родительской таблицы.
РЕДАКТИРОВАТЬ: Я вижу, что вы предоставили некоторые подробности, и теперь ясно, что таблица EMPLOYEE на самом деле является таблицей подключений, поэтому вы могли бы просто запросить эту таблицу и показать DEPTID и TASKID (оба первичных ключа соответствующих таблиц), чтобы иметь связь между отделами и задачами. Посмотрите запрос в другом ответе и просто добавьте ORDERBY в DEPTID, чтобы отобразить результаты в порядке DEPTID.