У меня такая же «проблема», как описано в (Last record of Join table): мне нужно присоединиться к «Мастер-таблице» с «Таблицей истории», тогда как я хочу присоединиться к последний (по дате) Запись таблицы истории. Поэтому всякий раз, когда я запрашиваю запись для мастер-таблицы, я также собираю «последние» данные таблицы истории.Последняя запись таблицы соединений (как оптимизировать)
Master Table
ID
FIRSTNAME
LASTNAME
...
History Table
ID
LASTACTION
DATE
Это возможно путем объединения обеих таблиц и используя подзапрос, чтобы получить последнюю запись истории таблицы, как описано в ответе, указанному в приведенной выше ссылке.
Мои вопросы: Как я могу решить проблему, что в теории могут быть две записи истории с той же датой?
Является ли такое соединение с подзапросом действительно лучшим решением с точки зрения производительности (и вообще)? Как вы думаете (я не являюсь экспертом во всех этих материалах), если я интегрирую еще один атрибут в таблицу «История», который называется «ISLATESTRECORD» в качестве логического флага, который я управляю вручную (и который имеет уникальное ограничение). Затем этот атрибут будет явно отмечать последнюю запись, и мне не нужны какие-либо подзапросы, так как я могу напрямую использовать этот атрибут в предложении where соединения. С другой стороны, это делает вставку новой записи, конечно, немного сложнее: сначала нужно удалить флаг «ISLATESTRECORD» из последней записи, мне нужно вставить новую запись истории с помощью набора «ISLATESTRECORD» и совершить транзакцию.
Как вы думаете, а рекомендуемое решение? У меня нет никакой информации об эффектах, связанных с подзапросами: у меня могут быть миллионы «Mastertable» Records », которые я должен искать для конкретной записи, также используя в атрибутах поиска объединенную таблицу« История », например:« Дайте мне Мастер-запись с FIRSTNAME XYZ и LASTACTION (таблицы истории) была «changed_name». Таким образом, этот подзадача можно назвать миллионы раз.
Или лучше работать с подзапросом, чтобы найти самую последнюю запись, так как подвыборки очень эффективны и лучше, чтобы все нормализовалось?
Большое спасибо
Какую базу данных (вкл. версия)? –