Managing BOMs in production management systems
In a production environment (and particularly electronics) you really need both ERP and PLM systems. Good discussion here (A bit of self advertising involved, but the core discussion is ok).

This answer is a bit more than just the BoM as that is one (albeit very important) part of the puzzle.

There are version control systems available for some CAD systems but that only controls the output of the tool itself; if you have numerous products at different revisions or perhaps variants, a PLM tool is essential as it is if you are using (as is likely) multiple tools for a complete product.

Most (all?) PLM tools permit you to freeze a complete product datapack in (usually) arbitrary formats (include CSV files and such).

A typical flow:

CAD: implement required changes / updates / release data.

At release, Datapack(s) from CAD tools(s) -> PLM tool. For good reasons, this is known as a single source of truth.

The PLM tool can have all the data necessary for EMS vendors (who are quite happy with CSV data, incidentally, which supports arbitrarily large text fields) as well as supporting the data for your ERP system.

In such a data flow, the PLM becomes the master repository for released data. 

If you do not yet have a PLM system, be warned that implementation can take many months and requires both a lot of planning as well as explaining to people why their ways will change and the benefits of doing so.

Having noted that is not an easy task to implement a PLM system, once it is in place it can be worth it's weight in gold for many reasons; product level version control is a major item here, but if a big customer wants to audit your processes it becomes the star of the show.

I have used a number of systems, from the very expensive and heavyweight TeamCenter to a lighter weight tool known as DDM.

The typical data storage that has kept my suppliers happy over the years for electronic PCB assemblies is something like this:

Part description: footprint: Quantity: Ref Des list (in a single cell): Manufacturer: mfr part number.

There can be more, but in my experience that is a fairly common practice. 

The complete electronics manufacturing pack contains a great deal more, of course.

My packs consist of:

Fabrication data for PCB - gerbers, ODB++ data (preferred by many higher end suppliers), drill data and a PCB fabrication master which contains information that is not listed in other formats: a snapshot of part of one such is below:



An assembly pack:

Pick and place data (not required if your assembler uses ODB++ data)

Bill of materials in CSV format (as above).

Assembly master (typical output below)

Test requirements (I usually call that out on the assembly master).



Note that I specifically list the Bill of materials (with revision) to be used.

For the BoM, CSV data is fine for assemblers; I am showing what a properly implemented PLM system can contain to support both the assemblers and ERP.