James G. Sack (jim) wrote:
OK, I see now you weren't just making a database for the keys to your
cars in the back-40. :-)
Oops. I neglected to mention that I'm a locksmith. I've mentioned it
before on the list somewhere and perhaps just didn't think to mention it
here.
It looks interesting, and I would like to spend a little time thinking
about it, but I have a couple of questions just-for-now. (See
interspersed remarks)
Whee!
Ralph Shumaker wrote:
..
OK, making things a little less simple, how about this:
Bear with me as I attempt to present this in a way that doesn't mangle
it all into a big mess.
The H75 appears to have *zero* substitutes. But that kee is used by
several Ford vehicles (not to mention Mercury, Lincoln, and others).
Just Ford alone has 25 entries using that kee.
It's not as simple as saying "the Ranger takes the H75" because the H75
was used by the Ranger from 97 thru 98 and during 05. Some (not all)
models of the Ranger used the H75 in 96, and 99 thru 00. And the Ranger
only accounts for 4 of the 25 entries for that kee.
If I'm making a kee for a vehicle that calls for the H67 and I'm out of
that kee, then I can substitute the H54, H55, H62, or H66. Now, I'm not
sure I trust the H55 and H62 info, because only one car lists those two
Where does the list (lists) come from? Car mfgr? Kee (keemaker?) mfgr?
Two (of my three) sources come from kee makers, Ilco and Jet. Ilco is
the commonly used one, but I suspect that Jet's is probably more
reliable. They are very different on a few things, and both have their
advantages. I haven't seen the one I have from Jet for some time, but I
downloaded the PDF version. I don't know if Ilco has an electronic
version. I kinda doubt it, only because I think of Ilco as being a
little stingy (tho I don't remember why). I seem to recall trying to
get an electronic form of the Ilco guide (after getting one from their
competitor, Jet) and not finding such an offering.
The third source is a publisher of manuals somewhat akin to auto repair
manuals, but these specific to locksmiths. The kee reference guides
made by the kee makers only give enuf detail to sell their products,
telling you which of their products you need for which cars. The
manuals go into _far_ more detail than just kee and lock references.
The Ilco guide is about 88 pages. The manuals (one for domestic and the
other for foreign) come to about 1100 similar sized pages.
But then again, it's not just three sources. Each year, the information
in the manual or guide may change. Wrong information may be corrected.
Right information can be messed up. So each year of the manuals are
separate sources. Additionally, Ilco stops (in most cases) at about 20
years. Most cars older than 20 years cannot be found in Ilco. So
that's where it pays off the most to keep the older Ilco booklets.
I have seen mistakes in each source. And one of the things I'd like to
have in my database is a list of things that I have personally confirmed
to be either true or false. Just by having my own line that basically
is a duplicate of the others would be confirmation. Each line would
show the source of its info. If the source is myself, then I will trust
it more (obviously). If any line has nothing from me, then I will
compare the sources and hopefully be able to see thru the errors.
I wouldn't mind trying to make a buck or two off of the finished
product, but my main motivation is to have reliable information for
myself to work with. My secondary reason is to become familiar with
modern database construction (frontend more than backend). A nice plus
would be if I could profit from my efforts and help other locksmiths in
the process. I'm fairly certain that if I could make a more reliable
guide, other locksmiths would be interested. Word of mouth would
probably be my best advertisement. Or maybe no one would care to pay a
couple bucks for an accurate guide when they can get for free one that
is _usually_ right. Personally, I'd rather have one that does not
change previously printed information unless it is for correction.
as substitutes. Other than this one car, all but 2 of the others list
both the H54 and H66 as substitutes. Two cars list only the H54 as an
acceptable substitute, but probably the H66 will work too (in other
words, the exclusion of the H66 on those two lines was probably a typo).
All substitutes are nearly identical to the first kee in the tail of the
kee. Most differences in substitutes are in the head or neck of the
kee. The H62 has a rather large head and probably could not substitute
for any other kee. On some, the neck is not as long and would prevent
them from substituting in for other kees. The H54 can substitute in for
several others (including the H62) because it has a long neck and a
relatively small head.
There are 25 entries that call for the H67. One of these lists the H54,
H62, and H55 as substitutes. Two list only the H54 as a substitute.
The other 22 list the H54 and the H66 as substitutes.
For my concerns, I don't care that one car lists different alternates
than all the others. My main concern is that each primary just show a
list of possible alternates. Maybe I will add a field to show how many
times a particular alternate is listed for a specific primary. But I
don't feel the need to track which car calls for which alternates. The
book I get the information from often has information changing from one
book: Some kind of 3rd party compendium? A trade tool, maybe.
Well, more a booklet. Think about 44 pages of 11x17 folded in half,
making 88 pages of 8.5x11.
year to the next, and *not* necessarily for corrections. I think this
book is manually typed each year...
heh! people still do that? =-O
It's quite clear that they do. The types of mistakes that show up do
not appear to leave any other possibility, unless their software is just
super shitty.
.. Information that is correct one year
can be wrong the next. I only want my database to show which primary
kee the car calls for. And my database will have info from different
years of the books to help compensate for the errors. I may even add
another field to indicate U, C, or W for Unconfirmed, confirmed Correct,
confirmed Wrong, and possibly even V for Varies.
Just a thought: it may be much easiest to do this in 2 stages.
1. assume there are no such conflicts to worry about,
(but at least reserving the thought there will be)
2. extend (1) to accommodate those conflicts
Well, what I had in mind was this: One line from Ilco's 2007 booklet
(if available to me), one line from Jet's 2007 booklet (if available),
one line from AutoSmart's 2007 manual (if available), and possibly one
line from me if I verify information, whether such verification agrees
or with the rest or not. And this process for each item from the three
(or four) sources. And this process for each of the older booklets (or
manual) from each source. I could even contradict myself if I discover
that one line item is sometimes one way and sometimes another. (And
believe me, that happens too.)
On Ford, the H62 was only used on the Escort, and even there, only from
1991 thru 1996. The H54 is the only listed substitute.
Only Ford (not including transponder kee entries):
Entries Primary Substitutes
2 H70
25 H75
22 H67 H54 H66
10 H51 H53
36 H50 H52
2 H78
2 H71
1 H67 H54 H62 H55
4 H54 H60
1 H76
1 H62 H54
1 H53 H51
1 H52 H50
2 H59 MZ16
2 H65 MZ27
2 H66 H54
1 S1186TS
10 H54 H60 H67
1 1185T-P H54
1 S1185T-P H50
1 H55 H54
2 RV4
2 62FT
1 WB2
2 MZ5 MZ10
1 MZ9
1 MZ4
2 H67 H54
Or, put another way:
Primary Substitutes
H50 H52*36
H51 H53*10
H52 H50*1
H53 H51*1
H54 H60*14
H54 H67*10
H55 H54*1
H59 MZ16*2
H62 H54*1
H65 MZ27*2
H66 H54*2
H67 H54*24
H67 H55*1
H67 H62*1
H67 H66*22
MZ5 MZ10*2
1185T-P H54*1
S1185T-P H50*1
Now, the ones that only show 1 occurrence in this final list, I'm not so
sure that I trust. For example, the only occurrence of the H52 being
replaced by the H50 is more likely to have been a typo in the book, and
that car *actually* call for the H50 and replaceable by the H52. Some
of the other probable typos are less obvious.
Essentially what I want to do is to make my own automobile kee reference
manual, first in database form, then printed. I want to create a
database that contains all the information from all the manuals that I
have. Basically, each line from the manual in my hand will be
identified in my database as having come from the 2007 manual...
the 2007 manual? the 2007 issue of the trade book mentioned above?
I'm not altogether clear about the term "trade book", but I think I got
it. It is a booklet that probably has very little use outside of my
trade. So, yes.
The one to which I refer here is the Ilco 2007 Auto Truck Key Blank
Reference.
.. I will
probably end up duplicating each line and correcting the info, and call
the new line my own. And when I print it out, I will print only *my*
lines.
When entering the data, I don't want to have to type in 1184FD/H54 (the
full description of the kee) each time and increase the chance of
introducing typos (which is obviously how the makers of this manual are
doing it). And seeing as how the H50 is listed as the kee of choice in
30 different entries in Ford alone, I think that kees would be a good
candidate for their own lookup table.
When it comes down to it, I want to have a table where I've already
entered all the kees, another table with all the transponder info,
transponder info comes from another reference?
Is this uniquely determined by car, maybe?
(make, model, year, [sub-series])
Sort of. One transponder kee specifically is the H72-PT. This is used by:
1997 Cobra (some)
(According to the Ilco guide, it seems that Cobra was not made after
1997. In 1996, some Cobras were fitted with locks that used the H67 on
code series A-B-C-D-E, and other Cobras got locks that used the H75 on
code series 1X-1706X. From 1994-1995, the Cobra got locks with only the
H67 (on same series). And from 1981-1993, the Cobra got Ignitions with
the H51 on series FA0-FA1863 and Door/Trunk/GB locks with the H50 on
series FB0-FB1863. [1])
1998-2002 Crown Victoria (some)
1998-2003 LTD (all)
1998-2004 Mustang (some)
1996-1997 Mustang (some)
(I don't know why the two above were separated, but this seems to
suggest that there must have been *something* different between them,
although the booklet does not show the difference. This seems to me to
indicate that the booklet has some sort of mistake here. Strictly going
by the info given, these two line items should only be one, namely, from
1996-2004.)
1998-1999 Taurus SHO & LS (some)
1996-1997 Taurus SHO & LS (some)
(Although it is not obvious from the limited info shown here, these two
line items *are* indeed different in the other info given and so _do_
deserve to be two separate line items. Specifically, they differ in how
the transponder is programmed into the car's computer. That, and the
1996-1996 Taurus had the transponder equipment as an option. Some
models made during those years did not have transponder equipment.
Others did. In 1998-1999, the transponder stuff was in all of them
(according to the 2007 Ilco reference guide).)
1998-1999 Taurus LX (some)
1996-1997 Taurus LX (some)
(These two different also.)
([1] This is one example of a line that goes back further than 20
years, but only because the latest use of this data was still _within_
the last 20 years. Ilco's reasoning is that very few cars on the road
are older than 20 years.)
And that is only the _Ford_ *cars* that use that transponder kee.
Several of the Ford trucks use it too, as well as several other car
makers (Mercury, Lincoln, and some Japanese).
Many other transponder kees may have been used on various cars. Even
most the ones I listed above did not have only the H72-PT. Some had
that one, others had the H72-EK, and possibly something else. I don't
know enuf about the differences between these two to be able to tell you
whether one car required one while another car of the same model
required the other, or if the only difference is that either car can
take either transponder kee and that the only difference is the tools
required to program the car's computer to accept it. There are *many*
complexities. This description barely scratches the surface.
Some of the very basic transponder info comes in the kee guides. They
tell you what tools are required for a given transponder kee with the
car listed (usually the same as other cars that use the same transponder
kee, but not always). And the guides also tell some other basic info
regarding transponder programming.
another table with all the substitutes, another table with all the
notes, another with car makers, another with car models, another with
lock applications, and another with code series, all enterable with a
combo box, one that will show possible matches based upon the first few
letters I type, but allowing a new entry if it matches no others.
OK the UI is a separate (and significant) question but I like the
thought of thinking in advance how the database ought to support your
access requirements.
Well, thanks. I'm no expert in databases, not by any means. But I'm no
novice either. When I improved the program used by my work (in a
computer repair shop) for work orders and invoicing and such, I learned
a lot (starting from nothing but a decent knowledge of BASIC). The
database program itself that I started with was written by a guy who
wrote programs for a living. After I finished, he looked over what I
had done and told me that I had what it took to do it too. I had no
idea how to even get started. I liked the idea. I still do. But even
back then, FoxBase was *soooooo* outdated (even tho many of the old
FoxBase programs, even now, are still out there and still running).
They work. So it's unlikely that any of them would need to be updated
or fixed. But if I were to run across any of them, I could manage
without much problem. The program I started with ended up about 3 times
bigger (which the original author pointed out, who then conceded that
storage devices had increased exponentially), mostly because of
enhancements that just made the program easier to use. But I introduced
several new things too. Also, the number of tables and indexes
increased by about 3 times, but this allowed the space actually used by
the data to *shrink* in size overall. And the data took up far more
space than the program. Overall, the space actually used by the whole
thing shrunk down to about half (which I pointed out to the original
author). There were a lot of empty fields in many of the records. I
separated some of those off to a different table that was only used by
the records that had that info.
But all that being said, that was many many moons ago. I remember most
of it. The book I referenced said that the most important part of
programming in a database language was to give a lot of thought to the
layout of the tables needed. It said that making even small changes in
the tables can require major changes in the program, which I can affirm
was most certainly accurate. So now I always think in terms of trying
to break the data down into tables appropriate to it. I was a little
surprised when I realized that just about every item (field) in this
project should be in it's own lookup table because of its repetitive
nature. The easiest example being perhaps car makers. There are only
about 66 of them (presently). So for each line item, each record that I
enter, when I come to this field, there are only about 66 to choose
from. And I don't want to have typos, which are much more likely if I
type this info from scratch every time. And proofreading takes a lot of
time, especially with something as dry as this stuff. But if I make a
typo in the auto makers table, once discovered, it only takes *one*
correction to correct it everywhere. If I type Chevrolet or Daihatsu or
Hyundai enuf times, I'm sure to end up with several different variations
for each. This is especially true when we get to the kee numbers and
other info equally as mundane and dry.
But the main table is where they are all connected. The main table will
have:
an entry for the year (of the manual)
a combo box for the brand of the manual (currently only 3)
a combo box for the model (currently over 700)
a combo box for the car maker (currently under 100)
You don't actually have combo boxes in the database, at least not in
relational databases. You're talking about the UI, I believe.
Well, yeah, I guess so. I started this thread in regards to ooBase.
I've been dabbling with it and it has the ability to do combo boxes,
which is appealing. But even in FoxBase, I *made* something like combo
boxes for ease of use. It was interesting. The database program was
made up of modules, each with their own function. I made one *just* for
use as a multi-purpose combo box (to simplify it). This module ended up
being called from several other modules, and sometimes by various parts
within a given module.
If I can construct a useful database with a decent UI, great! That's
what I want. If I have to get into the guts of the programming
instructions, then I'm sure that I will have MUCH to learn.
an entry for the year from
an entry for the year thru
a combo box for the lock application (currently under 100)
lock application? meaning
On most cars that use the H75 (for example), the car (when it left the
factory) uses the same kee on "All" the locks of the vehicle. Some of
these had a "Valet" kee.
On cars that used the H50, most of them used that kee only for the
"Door/Trunk" or "Door/Trunk/GB" or "Trunk/GB" or "GB". On these
vehicles, a different kee was used for the "Ignition" or "Ignition/Door"
or "Ignition/Hatch", etc. There are roughly 20-some variations (IIRC)
of "lock application" used.
a combo box for the code series (currently about 100)
series is a disjoint classification of kees, maybe?
(Really getting much further into detail than I expected to go. :) )
Not exactly sure what you mean. (I'm not very keen on the word "disjoint".)
If I understand correctly, it's not a disjoint classification of the
kees themselves, but rather a disjoint classification of the combination
of the cuts on the kees.
A given kee could be used with more than one code series (not usually
the case, but occasionally so). And a given code series often applied
to many different kees (usually the case).
A code series was used by the car maker to have a list of kee cuts that
were not "plaintext", so-to-speak. A1 could be 33542 [2], where A2
could be 53421, ..., K9722 would be 31245, all of which are used on kee
XZ123. They could stamp the code right onto the lock (and some did) and
anyone reading the code would not know how to convert that to a useful
kee unless they had access to the code list. The one I just made up
here would be written as code series A1-K9722 and it would apply to
certain locks (and their appropriate kee) of certain models of certain
makers of certain years. One of the actual code series for Ford (for
the H75 kee and others) is 1X-1706X. It appears (just by looking at
Ford listings only) that H75 does not seem to use any other code
series. But I have seen other kees that do use multiple code series.
[2] In a given code series, there are certain specifications on the
cuts, the spacing from one to the next and the increment from one depth
to the next. The kees used with the series have physical limitations.
Most car kees have a maximum of 4 different depths, usually starting
with depth number 1. Some have only 3 depths. Some have as many as 6
depths. The cuts I listed could belong to either the 5 or 6 depth
categories. But 33542 means that in the first space (the first spot
designated for a cut) the kee is to be cut to the depth identified as a
3. The second space is also to be a 3, the third a 5, the fourth a 4,
and the last one a 2. There are many combinations, especially when you
use the same combinations on different kees that cannot even go into the
locks belonging to the first kee or each other. [3]
[3] I realize that footnotes are supposed to be at the very bottom.
But I think the only thing that really needs to happen is that the
footnote be separated off _just_ far enuf so as to not break the flow of
the sentence that would have been too complex and unwieldy had the
footnote been left in place of the number asking you to look elsewhere
for other applicable info.
a combo box for the kee of choice (currently ???)
a combo box for substitutes (fewer than the kee of choice)
a combo box for transponder info (under 100?)
a combo box for the notes. (under 100?)
If the car model is filled in first, then most of the time the car maker
will only have one choice, but could have as many as three (currently).
Most lines have zero substitutes, some have only one, but some have more
than one. Same thing goes for the transponder info and the notes.
0-or-more is easy to do in relational databases.
Relational database is essentially what I did years ago in FoxBase, tho
the "relations" were done with lines of code that connected them. That
was challenging. It was fun in a way, but I cannot say that I would
like to get that far into the guts of the code if I don't have to.
In other words, I think I have at least a basic, rudimentary
understanding of "relational".
Most of the info in the manual is repetitious, but uniquely combined on
each line for a different lock and kee application. For example, the
Ranger has 17 lines, each one unique from the others in some way. In
other words, each field has a small number of possible entries (other
than car models and probably kees). But no two records will be entirely
the same. There are approximately 2,000 records for each manual. And
most of the information that is possible in each of the fields will be
identical from one manual to another. I'm thinking that each field
should have it's own table, except the years (because of how simple they
are, like entering 4 digits should be easier that scrolling thru a list).
I don't think this is all that simple. But then again, I've never
embarked upon anything quite like it.
Later..
..jim
Thanks jim. This email was a little exhausting, but fun. I *am*
enjoying this.
--
Ralph
--------------------
If we didn't have ambiguity in the language we would not have good crossword
puzzles.
--carl lowenstein
--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg