On 3/25/2025 12:19 AM, bitrex wrote:
How about a bidirectional hash table for part # generation
I just use a "serial" data type; it's an integer that automatically
increments each time you add a row (an entry/record) to a table
in a database.
A procedure in the database then computes the check digit for that
particular "serial" and appends it as the 8th digit.
The use of "serial" ensures there are no duplications in the table.
The check digit acts to ensure errors in using the part number
(serial+check digit) are caught: 1234567X is valid but
any other value of X is "not a valid part number".
(No way to identify WHICH digit -- including the check digit -- is
in error. But, it reduces the chance of you mistakenly using, e.g.,
a *screw* instead of the intended *resistor*.)
The alternative, (putting significance in the numbering scheme)
means you will end up with more digits in your identifiers AND
lots of valid part numbers that you never actually use!
(What's your part number for the 44R2 1% resistor you use in
ONE of your designs? Likely you also have available a part number
for a 43R2, as well?? In fact, you probably have 1000 part
numbers -- 3 digits -- reserved to address 1% resistors over 10
decades! And, another digit to indicate package and lead orientation,
power rating, etc. All "created" just because you chose to use
ONE particular device of that type /in your business/.)
((And, when SMT components came on the market, you had to adjust your
numbering scheme to accommodate them in the context of the existing
devices))
My first employer had fits trying to sort out how to assign part
numbers to the (EP)ROMs in our design:
"What's *in* this particular EPROM?"
<shrug>
"What do you mean, you don't know? How do we manufacture it?"
"The program is a book. That EPROM represents pages 100-199
in the book. Can you tell me which chapters that includes, today?
Can you tell me which chapters it will include when I revise the
book??"
"Then, it only exists in the context of other related parts!
The 'other chapters'. And, can only be changed with changes
to those other chapters!"
"No. I can replace a single page if necessary. So, each EPROM
/in the set/ can be at a different revision level. It's up to
Engineering to manage this (configuration management) so only
valid "combinations" of those devices are incorporated into a
released product."