> It seems to me that trying to stuff a view into the CakePHP model > without taking the time to add in code specifically to handle views > just isn't going to work, and that you should spend your energy > creating an object that will run the view in native SQL and return the > data in the format that you need.
This is a fair point. All the points you make are fair. But I think you are being a little too dismissive of database views. Yes, you can do the work yourself in the code. But why would you when it can be done so much faster and more elegantly within the database. > I have never used an SQL view and would love to see a real-world > example of when a view should be used over, say, the CakePHP model > combined with associations. Here is a real world example of what I'm trying to accomplish. I have 2 models: Users and Collections. Users hasMany Collections and Collections belongsTo Users. This one user has, say, 5000 records in the Collections table (not uncommon) with each record having having a variable number in the owned column. So I can let CakePHP return all the records and iterate through 5000 of them to get a sum of all the items owned in the collection or I can just create a view (that looks like the one I've posted several times in this thread) and have all the information I need returned using 1 query. I'm sure you'll admit the latter is significantly better than the former w/r/t performance. Whether it's a view or a plain SQL query doesn't matter. Yes, I could just do something like $this->MODEL->query( 'SELECT statement used in creating my view' ), but if I use that database view on various pages and I needed to change it for whatever reason (add/remove a field, etc), I have to modify all the pages where it is ues. Whereas if I set it up as a view, I can change the view in the database and very likely I wouldn't have to change the code at all. For example, let's say I wanted to break up 'username' into 'firstname' and 'lastname' fields. I could change my database view to "SELECT CONCAT( firstname, ' ', lastname ) as username" and not have to change my code at all. > Is it a bug? Hard to say. When you use a piece of code for something > it wasn't intended to do and it doesn't work, is that a bug? Or is > that a constraint of that piece of code? And yes, I may be using "...a piece of code for something it wasn't intended to do and it doesn't work.". "Is that a bug?", you ask. No, not necessarily. Admittedly, I don't know enough about the internals of CakePHP to know if, in fact, it is. That is why I'm putting the question to you guys, you who are far more experienced than I, to find that out. I don't want to submit a ticket saying "waah! this is broke" when it could just be my ignorance as to how CakePHP is _expected_ to function. thnx, Christoph --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Cake PHP" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---
