I hadn't thought about that.

My first thought is that I'd like to keep as much as possible within web2py 
for portability, but I will have to look at that possibility. Thanks.
On Tuesday, November 27, 2012 2:21:09 PM UTC-5, Derek wrote:
>
> For this kind of thing, triggers are great.
>
> On Tuesday, November 27, 2012 10:23:13 AM UTC-7, Wes Hall wrote:
>>
>> Understood, this is a database issue.  My expense comment was referring 
>> to frequently checking the db for changes, not the actual query.
>>
>> Friendly names should < 10, teacher list should remain < 1000.
>>
>> It does sound as though my best bet is to monitor the "friendly name" 
>> manage page, and on insert/update, re-flag the teacher table. I would also 
>> need to get the teachers flagged on insert. Then, the final teacher query, 
>> as you mentioned, is trivial.
>>
>> Thanks again for your commitment to Web2Py.
>>
>>
>> On Tuesday, November 27, 2012 11:32:59 AM UTC-5, Massimo Di Pierro wrote:
>>>
>>> This is not really a web2py issue. This is a database issue. Who would 
>>> you do this efficiently with SQL? Unless you store the flag, you can try 
>>> using regex search. It will only work with some databases and it may not be 
>>> more efficient. How many friendly names do you have?
>>>
>>> On Tuesday, 27 November 2012 10:25:32 UTC-6, Wes Hall wrote:
>>>>
>>>> Since I obfuscated the real application, I can't fault this answer. 
>>>> However, in the current usage, it doesn't feel like the best solution. 
>>>> Teachers are being inserted into the database from outside Web2Py, while 
>>>> the friendly names are managed from within (and might change frequently, 
>>>> which would require adjusting existing rows). A cron task could update the 
>>>> database using the suggested logic, but that seems a little expensive for 
>>>> what needs to happen. 
>>>>
>>>> At any rate, it appears as though I'm not missing some Web2Py magic 
>>>> that would simplify the query.
>>>>
>>>> On Tuesday, November 27, 2012 10:53:39 AM UTC-5, Massimo Di Pierro 
>>>> wrote:
>>>>>
>>>>> I would suggest that when a user register you check if they have 
>>>>> "friendly sounding" first name and flag it, then search using the flag.
>>>>>
>>>>> On Tuesday, 27 November 2012 09:48:48 UTC-6, Wes Hall wrote:
>>>>>>
>>>>>> I want to select teachers that have taught for more than one year, 
>>>>>> are getting paid and have a friendly sounding first name. 
>>>>>> The friendly sounding names are stored in a table, along with their 
>>>>>> expected position in the name.
>>>>>>
>>>>>> Currently I'm using this:
>>>>>>
>>>>>> teacher_query = db.teachers.years_taught!=0
>>>>>> teacher_query &= db.teachers.status=='Paid'
>>>>>>
>>>>>> whitelisting = db.teachers.first_name=='zzzzzzzzzzz'
>>>>>>
>>>>>> friendly = db(db.friendly_names).select(db.friendly_names.name
>>>>>> ,db.friendly_names.position)
>>>>>> for x in friendly:
>>>>>>     if x['position'] == 'Leading':
>>>>>>         whitelisting |= db.teachers.first_name.startswith(x['name'])
>>>>>>     else:
>>>>>>         whitelisting |= db.teachers.first_name.contains(x['name'])
>>>>>>
>>>>>> teacher_query &= whitelisting
>>>>>>
>>>>>> Is there a better way to get the whitelist sub-query started?
>>>>>> Should I do a counter inside the for loop and initialize 
>>>>>> 'whitelisting' if it's the first friendly name, or is there a method I'm 
>>>>>> missing from W2P?
>>>>>>
>>>>>>
>>>>>>

-- 



Reply via email to