You would then need to just add to the stock movement table(s) the ArticleID, LocationID, Amount Issued/received, Date. Then you can always link up to a certain article in a certain location for a certain date to obtain the current balance or the movement with-in a given time period - dynamically.
If you still want a static field for the BOH/SOH then whenever an item it received/issued, these fields, (one in the Artikel table and one in a Link table ArticleLocationLink will need to be updated,and then a proceedure to refresh these values in case they get out of place.
Tables needed:
>Article/Stock
>Location
>ArticleLocationLink (Fields ArticleID, LocationID, SOH) This table itendifies all the locations that an article can(only) be located in. You will need a link form so the user can assign/unassign an artcle to a certain location (need ref. integ. check so an item cannot be unassign once it has ever been logged in as received/issued)
>Received (ArticleID, LocID, Amount, Date)
>Issues (Fields same as above plus IssuedTo)
If you use 2 tables here, then create a unique receipt ID field using something like a combination of the ItemID+LocID+DateTime down to the second, so that the issues can be easily tracked back to the receipts.
The last 2 can be made into one, but better is using 2.
Then consider having another issue type table to record bad/damaged stocks or faulty receipts(which can be removed from the receipt table as long as no issues have been made)