Re: Queries and Common Practices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 22 May 2011 10:50, Ashley Sheridan <ash@xxxxxxxxxxxxxxxxxxxx> wrote:
> On Sun, 2011-05-22 at 05:33 -0400, admin@xxxxxxxxxxxxxxxxxxx wrote:
>
>> I have been working on a class methods for some time now.
>>
>>
>>
>> I have reached a cross road when it comes to common practice of developing
>> query structure.
>>
>>
>>
>> Long ago I wrote queries where I Âjust called the field I wanted on a
>> particular table unless I was joining them.
>>
>>
>>
>> Example:
>>
>> $query = " SELECT id FROM Table WHERE Clause";
>>
>>
>>
>> Through time I developed a habit of queering as such.
>>
>> Example:
>>
>> $query = "SELECT tablename.id FROM db.table WHERE clause";
>>
>>
>>
>>
>>
>> I have felt that, because my server contains multiple databases and I needed
>> to jump between databases and tables without changing the connector this
>> always has been best practice for me.
>>
>>
>>
>> Someone recently told me,
>>
>> Â Â Â Â Â Â Â Â Rich,
>>
>> I do not agree with your design of the queries.
>>
>> There is no need to include the DB and table name in the query if you are
>> not joining tables.
>>
>>
>>
>>
>>
>> While I have a very hard time understanding this response as being valid. I
>> will propose the question.
>>
>>
>>
>>
>>
>> Is it bad practice to write queries with the database and table name in the
>> queries even if I am NOT joining tables?
>>
>> Is there an impact from PHP or MySQL that is caused by doing so?
>>
>>
>>
>> I know this more a MySQL question but as PHP developers we all deal with
>> queries on a day to day bases,
>>
>> and when developing more flexible class methods I build the queries in the
>> method.
>>
>>
>>
>>
>>
>> Richard L. Buskirk
>>
>
>
> I don't know of any impact, but I don't use the database name in the
> query much, only when I need to perform a join across different
> databases. However, I almost always specify the table name, even if I'm
> doing a single table query, as I often find I may need to alter the
> query to pull in extra information from other tables. I do it much like
> you do, but I also give the table a moniker which lets me shorten the
> queries as I type:
>
> SELECT p.id, p.name FROM people p WHERE p.gender = 'male'
>
> This way, I can easily join in other tables, my typing is kept to a
> minimum as I do it also.
>
> --
> Thanks,
> Ash
> http://www.ashleysheridan.co.uk
>
>
>

I use multiple databases on multiple servers (using linked servers).
In many cases the databases contain the same table names. It is a
force of habit that I use [server].[database].[owner].[table] alias.

If your connection is linked to a single DB and the query is only for
that DB, then [server].[database].[owner] is redundant.

Richard.

-- 
Richard Quadling
Twitter : EE : Zend : PHPDoc
@RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY : bit.ly/lFnVea

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux