I\'m currently working on a project which should help us with our inventory control as well as our purchases to assembly our final product.
We\'re in the stage of mo
The models you linked fail to address some major properties BOMs normally have:
Here is a simple model that addresses these concerns:

The PART table is either a top-assembly or a sub-assembly or a leaf part. It uses a publicly known "part number" to identify its rows, which is not actually a number at all and can contain non-numeric characters.
The BOM table models many-to-many relationship of PART by itself. It's really no different from any other junction table, except both "endpoint" tables are actually the same table. This way, one sub-assembly or part can be reused in multiple parent assemblies.
On top of this model, you can fairly naturally add things like "drawing position" or "unit of measure" (e.g. a paint can be part of BOM but is measured in "kilograms" instead of "pieces").
There are more things you might want to do in reality, but are beyond the scope of a simple StackOverflow post like this.
For example:
These are some of the reasons why real PDM systems tend to be complex. If you actually need all that functionality, you should probably consider using a commercial product instead of trying to re-implement it yourself...