CityDev wrote:
> You seem to be asking about four separate issues - normalisation,  table
> creation, table loading, and SQLite syntax. The thing is I've just looked at
> your book's index and I can't imagine a better source of answers to your
> questions.
> 
> Maybe you would like to post some specific cases here?

Yeah, I guess it is a little vague, I'm just getting oriented in
database programming. I've found a lot about foreign keys and
sqlite3 now, and lots of people show examples of using triggers
to enable foreign key checking in sqlite. But I think to start,
I don't need that checking if I code some simple checks on fields
first.

Anyway, what I was looking for was an explicit example of creating
two tables with the required primary key designations, and using
those keys to populate them so they are normalized (to some level
at least). For example, call one table person and the other foods.
Then John and Jane are two persons to put in the person table. Then
the foods table is apple, orange, banana, and peach. John eats
apple, orange, and banana. Jane eats apple, banana, and peach.
I was hoping to see a simple example of table creation (mostly
how to use primary keys between the two tables; foreign key
apparently) table population, and maybe some data retrieval.
I think I'm beginning to understand how to do this, but I learn
best from examples.

I'm thinking that first, I'll populate the people table, then the
food table. Then, a column (can't be a primary key column) will
be set to the primary key number of a food in foods. Do this for
John and Jane and each food they like. Then, how to handle a
new food, grapes. Something like this:
1. see if grapes exists in table
2. if yes, look up the key number and insert that in the column
    in the person table (if person not in table, insert person first)
3. if no, insert grapes into the food table, place the newly created
    primary key number in the appropriate person column
4. do that for each new food
5. write a join sql query to return which foods a person likes

So I'm looking for a simple coded example of something like the
above, including checking if person and food entries are in the
table or have to be created on the fly.

If the above logic looks reasonable, I may be able to mull my
way through to a solution. I think the approach won't need
enforced foreign primary keys and be robust?

Hmmm. It just dawned on me that the trigger enhanced code may
be what "protects" you from "accidentally" changing or deleting
a key number and breaking data that depends on it? I don't
think my simple code above needs that as long as I never
delete a key or food. If I do want to delete a food, say, I'd
just have to write sql to see that no person likes that food
before deleting. I guess maybe triggers make this easier to
program somehow?

As for the book's index, here is what I've penciled in to my
book, and I've just begun: delete 128, dump 42, import 42,
insert 123, like 92, pragma 381, unique 129, update 127.
Agreed, many of these do appear under "Structured Query Language
(SQL) Syntax", but that isn't the first place I looked each time,
and I only discovered them after a large amount of contents
checking and thumbing through the book for the topics. So they
now are in both places in my book. :-)

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to