За последние 24 часа нас посетили 22837 программистов и 1231 робот. Сейчас ищут 806 программистов ...

Надо разобраться с заданием

Тема в разделе "MySQL", создана пользователем Dimon2x, 16 окт 2019.

  1. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
    Так вот, я не понимаю, какой результат вообще надо, как это должно выглядеть при запросе, что должно вывестись?

    вот какую я структуру сделал, по описанию https://www.db-fiddle.com/f/tLLRdUyYAfyYE5JNCLGxQv/0

    Запрос за меня делать не надо, я просто не понимаю, что должно быть на выходе.
    ----------------------------------------------------------------------------------------------------------------------

    Есть таблицы.

    Задача:

    Написать SQL-запрос, возвращающий список неиндексированных внешних ключей (названий внешних ключей – ограничений целостности). Результат надо получить при помощи одного запроса (пусть и большого).

    Например, если в вышеприведенном примере отсутствовал бы индекс I1_bill, то ограничение целостности FK1_bill должно было бы попасть в данный список.

    Согласно определению индексированного и неиндексированного внешнего ключа если есть индекс состоящий из двух столбцов (как в вышеприведенном примере – индекс I1_bill по столбцам id_agree и id_billdoc), и первые n столбцов в том же порядке входят в ограничение целостности, то такой набор столбцов считается индексированным и в результат попадать не должен (в примере столбец id_agree входит в индекс I1_bill и входит в ограничение целостности FK1_bill и поскольку для операций со столбцом bill.id_agree можно использовать индекс I1_bill, то при наличии индекса I1_bill ограничение целостности FK1_bill не считается неиндексированным).

    ----------------------------------------------------------------------------------------------------------------------------------

    Пояснения

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

    Внешний ключ считается неиндексированным, если нет индексов, в который входят все столбцы внешнего ключа в том же порядке, что и во внешнем ключе, без пропусков, начиная с первого столбца индекса.


    Максимально возможное количество столбцов в ключах и индексах считать равным 10.
    ------------------------------------------------------------------------------------------------------------------------------------------------



    1111111111Снимок экрана от 2019-10-16 19-51-15.png
    222222222Снимок экрана от 2019-10-16 19-52-14.png


    Пример

    Пусть есть 2 таблицы – agreement и bill. Первичный ключ в таблице agreement – поле id_agree. Первичный ключ в таблице bill – столбец id_agree, id_billdoc.

    В таблице bill также есть поле id_agree, ссылающееся на поле id_agree в таблице agree.

    Также к таблице bill есть индекс по полям id_agree и id_billdoc, а в таблице agreement есть индекс по полю id_agree. Поскольку внешний ключ в таблице bill на таблицу agreement содержит один столбец id_agree и в таблице bill есть индекс, первым столбцом которого является столбец id_agree, то такой внешний ключ является проиндексированным.

    3333333333Снимок экрана от 2019-10-16 19-53-59.png