I'd have a table for tests:
Code:
tblTests
TestID TestName ---> other test specific information
1 Moisture
2 PH
3 Size
etc...
I'd have a table for materials:
Code:
tblMaterials
MaterialID MaterialName ---> other material specific information
1 Material A
2 Material B
3 Material C
etc..
then I'd have a table that tells me which tests need to be performed on which materials
Code:
tblMaterialTests
MT_ID MaterialID TestID
1 1 3
2 2 1
3 2 3
4 3 1
4 3 2
4 3 3
so the table tblMaterialTests tells you which tests you need to perform on each material
Then I'd have a table for the receipt of the item
Code:
tblMaterialReceipt
ReceiptID MaterialID ReceiptDate ----> other receipt related fields
1 1 1/1/2013
2 1 2/1/2013
etc.
then I'd have a table that stores the tests performed for each
Code:
tblReceiptTests
MRT_ID ReceiptID TestID TestResult ---> other test result fields
1 1 3 Pass
2 2 3 Fail
So at any point you can look at the tests you SHOULD perform vs the tests that HAVE been performed and enter the results.
I don't have any information on the nature of your tests, for instance if it's a simple pass/fail, or whether you have to record the results of your test. For instance size may have three dimensions (length, width, height) where a ph test may only have one result, that being the actual value.