За последние 24 часа нас посетили 22744 программиста и 1277 роботов. Сейчас ищут 762 программиста ...

Подстановка значений в таблицу из таблицы справочника

Тема в разделе "MSSQL", создана пользователем Feonix89, 5 июн 2018.

  1. Feonix89

    Feonix89 Новичок

    С нами с:
    30 май 2018
    Сообщения:
    113
    Симпатии:
    2
    Вопрос по организации. Имеется таблица в районе 100000 строк. В таблице есть 3 колонки (считаем их уникальными) и значения в строках этих столбцов могут повторяться.
    Например:

    книга | твердый переплет | отечественный автор | 1 | 2 | 3 | ...
    книга | твердый переплет | отечественный автор | 2 | 3 | 4 | ...
    книга | твердый переплет | отечественный автор | 3 | 4 | 5 | ...
    книга | твердый переплет | отечественный автор | 4 | 5 | 6 | ...
    книга | мягкий переплет | отечественный автор | 1 | 2 | 3 | ...
    книга | мягкий переплет | отечественный автор | 2 | 3 | 4 | ...
    книга | мягкий переплет | отечественный автор | 3 | 4 | 5 | ...
    книга | мягкий переплет | отечественный автор | 4 | 5 | 6 | ...

    Задача подставить в одинаковые новые столбцы соответствия.
    Делаю таблицу соответствия, например:

    книга | твердый переплет | отечественный автор | Пушкин | Александр | Сергеевич
    книга | мягкий переплет | отечественный автор | Чехов| Антон | Павлович |

    И затем в эту 100000 махину хочу подставить эти значения в дополнительные поля.
    Получиться что-то типа :

    книга | твердый переплет | отечественный автор | 1 | 2 | 3 | Пушкин | Александр | Сергеевич
    книга | твердый переплет | отечественный автор | 2 | 3 | 4 | Пушкин | Александр | Сергеевич
    книга | твердый переплет | отечественный автор | 3 | 4 | 5 | Пушкин | Александр | Сергеевич
    книга | твердый переплет | отечественный автор | 4 | 5 | 6 | Пушкин | Александр | Сергеевич
    книга | мягкий переплет | отечественный автор | 1 | 2 | 3 | Чехов| Антон | Павлович |
    книга | мягкий переплет | отечественный автор | 2 | 3 | 4 | Чехов| Антон | Павлович |
    книга | мягкий переплет | отечественный автор | 3 | 4 | 5 | Чехов| Антон | Павлович |
    книга | мягкий переплет | отечественный автор | 4 | 5 | 6 | Чехов| Антон | Павлович |

    И собственно такой нюанс: Большая таблица должна каждый день обновляться (2 варианта: 1 - дропать таблицу и загружать новую с изменениями и 2 - отслеживать изменения и дополнять (хз как это правильно организовать во 2 варианте т.к. полей которые могут меняться много))

    Так вот как можно организовать такую структуру, чтобы система работала как можно быстрее :)

    Есть предположение, что:
    1 - отсортировать по алфавиту по 3 столбцам,
    2 - сгруппировать по 3 столбцам,
    3 - перенести в таблицу справочник, дополнить своими полями
    4 - взять первую строку из справочника сравнить с большой таблицей и вставить новые значения, в тот момент когда значение не равно запомнить id строки и взять следующую строку из справочника и т.д., но очень сильно сомневаюсь в правильности такого решения.

    P.S. не судите строго я не так давно начал этим заниматься...