In my experience, the most important thing is consistency. Almost everything else is a matter of taste.

For instance, some folks like to name columns with the table name as a prefix on every column (except foreign keys):

create table a(
        a_id int,
        a_value varchar(64),
        a_created datetime
);

create table b (
        b_id int,
        a_id int references a.a_id
        b_value varchar(128),
        b_created datetime
);

This is a smart thing to do as every column, across all tables, has a unique name (unless it's a foreign key)

However, it can create a lot of typing, which can be annoying.

On the other hand, you can be more concise:

create table a(
        id int,
        value varchar(64)
        created datetime
);

create table b(
        id int,
        value varchar(64),
        created datetime
);

This saves some typing, but can create annoying ambiguity. Join operations end up requiring more specific selection critera (SELECT a.title as a_title, b.title as b_title).

I used to use the former method almost exclusively. However, as I started playing with various frameworks, I've switched to the latter as those I've worked with kind of expect it. Probably because various _call() based magic ends up looking nicer in userland code.

If you have more specific considerations, feel free to get more specific.

-Tim




On Sep 12, 2009, at 8:17 PM, m...@atopia.net wrote:

Does anyone have any good naming conventions for mysql databases and tables and columns? I'm developing a complex lamp project now, and my normal convention doesn't seem to want to work too well for this project - there are a few conflicts.

_______________________________________________
New York PHP User Group Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk

http://www.nyphp.org/show_participation.php

_______________________________________________
New York PHP User Group Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk

http://www.nyphp.org/show_participation.php

Reply via email to