Estou tentando criar um novo banco de dados de acesso relacionando as plantas com os produtos químicos que elas contêm. Eu entendo que é uma relação de muitos para muitos, porque muitas plantas podem conter o mesmo produto químico e a mesma planta pode obviamente ter vários produtos químicos. Tentei configurar uma tabela de junção e criar o relacionamento muitos para muitos dessa maneira, mas ainda não está claro para mim, pois estou construindo o banco de dados e inserindo os dados, como faço para acessar quais produtos químicos estão em quais plantas? Qualquer ajuda seria muito apreciada, pois preciso continuar com este projeto rapidamente.
relate perguntas
-
A formatação condicional do MS Access está comparando apenas o primeiro dígito dos números
-
Existe uma maneira mais simples de inserir um campo de vários valores no Access?
-
Microsoft Access 2019, relacionamentos um para um (supertipo -> subtipo)
-
Ao importar uma planilha para o Access, como você impede que o Excel atribua automaticamente um tipo de campo de dados?
Considere a tabela Plant com a chave primária PlantId e a tabela Chemical com a chave primária ChemicalId.
A tabela PlantChemical teria duas colunas: PlantId e ChemicalId. Deve haver um índice em cada uma dessas colunas - NÃO um índice único, pois o objetivo é várias entradas para cada planta e cada produto químico, e você deseja ir de planta para produto químico (como exemplo de consulta abaixo que precisa de um índice em PlantId) e também de Chemical para Plant (por isso precisa de um índice em ChemicalId). Portanto, você pode querer colocar uma coluna AutoIncrment para ser a chave primária (eu faria).
Você pode então relacionar os dois com algo como
(Esta pode ser uma sintaxe incorreta para o Access. Lembro que o Access tem opiniões sobre a ordem dos nomes das colunas nas partes das junções, mas não tem …. Acesse agora.0
O esquema do banco de dados para uma relação m-para-n em que cada combinação planta/produto químico existe apenas uma vez, é assim:
Ou seja, na tabela de junção a chave primária (PK) consiste em
PlantID
eChemicalID
, pois você deseja atribuir cada produto químico apenas uma vez para uma determinada planta. Uma planta ainda pode ter muitos produtos químicos e um produto químico ainda pode ser atribuído a muitas plantas.A tabela de junção
PlantChemical
possui uma chave estrangeira (FK) para aPlant
tabela e para aChemical
tabela. A chave estrangeira para aPlant
tabela deve excluir exclusões em cascata, para que você possa excluir facilmente uma planta. A chave estrangeira para aChemical
tabela não deve excluir exclusões em cascata, porque você não deve ser capaz de excluir um produto químico que uma planta contém.É uma boa ideia ter um índice exclusivo sobre os nomes de plantas e produtos químicos para acelerar as pesquisas e evitar entradas duplicadas.
no Access
Plant.PlantID
eChemical.ChemicalID
devem serAutoNumber
colunas.PlantChemical.PlantID
ePlantChemical.ChemicalID
devem serNumeric Long
colunas.Na interface do usuário, deixe o usuário selecionar uma planta da
Plant
tabela e vários produtos químicos daChemical
tabela. Para cada um desses produtos químicos, insira um registro na tabela de junção com os dadosPlantID
eChemicalID
.O usuário então selecionará outra planta e fará o mesmo lá.