#1:
Use access="field" to instruct NHib to work with your fields. If you have a naming strategy other than :
Code:
private int camelCase;
Then you can append the access strategy like access="field.camelcase-underscore" name="MyField".
#2:
You'll want to use IList<type> for your collections. Just use a one-to-many relationship from Document-Table and Table-Field..here's in Document mapping...
Code:
<bag name="tables" access="field.camelcase">
<key column="DocumentId" foreign-key="Document_Table"/>
<one-to-many class="DocumentTable" />
</bag>
Hope this helps...