2013-07-18 3 views
0

Я не специалист по базам данных, и наша компания хочет оптимизировать использование нашей базы данных, если это возможно. Проблема в; у нас есть много таблиц, которые создают длинный путь к правильной информации, например:Microsoft Access: много таблиц и ключей

tblPIECES -> tblMATERIAL -> tblTEMPERATURES 

tblPIECES имеет уникальный идентификатор, который подключен к тому же уникальному идентификатору tblMATERIAL в. tblMATERIAL включает в себя множество столбцов, которые включают новые ключи и отношения к другим таблицам, например tblTEMPERATURES. Таким образом, ключ отличается от предыдущего, но ключи связаны друг с другом.

Вопрос в том, есть ли способ сократить команду выбора для такой ситуации? Теперь мне нужно:

  1. Выберите temperaID из tblMATERIAL где pieceID есть .. pieceID
  2. Выберите maxtemperature из tblTEMPERATURES где temperaId является temperaID

Это, как получить доступ к информации о температуре. Мы используем отношения для удаления вещей, например: если вы удаляете идентификатор piecesID, он также удаляет ссылки на материалы на этот ключ, а затем они удаляются из-за температуры из-за удаления материала.

Есть ли более короткая ссылка на все температуры, которые подключены к заданному параметру заданной температуры?

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

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

Они вряд ли смогут изменить структуру базы данных MS ACCESS.

+3

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

+0

Согласитесь с HLGEM. «Все должно быть сделано как можно проще, но не проще». - Д-р Альберт Эйнштейн – Smandoli

+0

Я согласен с другими, вам нужно узнать о LEFT и INNER JOINS, чтобы действительно использовать базу данных. Нынешняя структура звучит так, как будто она правильно нормализована, что является большим достоянием, а не чем-то, чтобы реструктурировать. Теперь, если у вас есть массивная (100 + table) база данных, вы можете подумать о денормализации некоторых из них. –

ответ

3

Это звучит как нормальная нормализация данных для меня. Это также звучит так, как ваши таблицы находятся в правильных отношениях, и эти отношения обеспечивают ссылочную целостность. Вкратце; это похоже на модельную базу данных. К сожалению, если вы хотите сохранить данные в оптимальном формате, запросы на него требуют небольшой работы. Однако, как только вы настроите несколько базовых запросов, все будущие запросы должны указывать только на эти «базовые» запросы, а не на таблицы.

+1

Согласен. По крайней мере, цели вашей компании потребуют навыков на уровне солидного новичка. Для большинства из нас Excel является прецедентом для обучения Access; «кривая» для Access намного круче, но это очень весело. Если вы тот, кто подталкивает это вперед, вы получите основное понимание, чтобы обогатить другие занятия. Звучит грандиозно, но это мой опыт. – Smandoli

Смежные вопросы