Part numbers: start at "1" and increment from there. No need to get complicated like R-104-5C.D312, just 1,2,3,4...
Give each revision of a product its own part number
BOM is a comma separated text file. CAD, etc files: I just stick these things in version control. Subversion on a Linux server with Tortoise client on Windows.
That said, I worked for a small company in the early 90's where all of this was done on paper for dozens of products. We simply never saw the need to automate it. This is basically how we had it setup
1) Have a list of all parts: part #, description, average price, perhaps last place purchased from, bagging quantity
2) Kit list: (this part we automated with a BASIC program) make a BOM to build one unit and it calculates the number needed for e.g., 100 units. The kit list was combined with the pick list. So if you need to make 50 of something that had four 1k resistors and those resistors were stocked in bags of 100, it would tell you that you needed to pick 2 bags.
3) Assembly instructions, alternate parts, etc. saved in the product file
We probably had about 100 products and all this stuff fit in a single filing cabinet.
The setup that works for me these days is a simple Windows folder hierarchy:
>> design notes, etc in text files under the main folder
>> CAD (put CAD files here)
>> FIRMWARE (obvious
>> SOFTWARE (for items that interface to a PC)
>> MANUF (manufacturing instructions, BOM, notes, etc)
>> MANUALS (user instructions)
The nice thing about this is you can stick the entire hierarchy of folders into version control and branch, etc if you need to make custom version. I try to use plain text, comma separated files where ever I can for simplicity.