Thanks for the advice, Niphlod. I really should go read a good book on 
relational db design...

On Thursday, March 28, 2013 3:48:23 PM UTC-5, Niphlod wrote:
>
> cause usually you want to retrieve metadata more than you need the actual 
> contents.
> It makes you more **sure** when you have to select the entire content vs 
> just the metadata attached.
> When you'll switch to storing the contents too on the table, that table 
> can be partitioned and optimized further (some db don't handle well by 
> default large binaries).
> Generally, every application now treats the uploads in an async way, so if 
> there is any data attached is better to separate "roles" in different 
> tables anyway.
> Having them separated leads to a "separation of concerns" in the first 
> place, so your app would be less lenient to, e.g. retrieve the file 
> contents and discard it without using it.
>
> On Thursday, March 28, 2013 5:48:35 PM UTC+1, Lamps902 wrote:
>>
>> Thanks, niphlod and Anthony - some good suggestions and considerations 
>> mentioned there. niphlod - can you clarify why you recommend using separate 
>> tables specifically for large files (to prevent users from having to 
>> re-upload large files when forms aren't accepted?)? The async idea sounds 
>> pretty good, although it would require a pretty considerable rewrite of a 
>> lot of the code I have...
>>
>> On Thursday, March 28, 2013 11:19:06 AM UTC-5, Niphlod wrote:
>>>
>>> It's a bad design choice using a single table with lots of fields plus 
>>> an attachment (if the attachment is large).
>>> I always store attachments in a separate table.
>>>
>>> That being said, I don't think that keepvalues will do the trick, cause 
>>> basically keepvalues sends back to the client the contents and prefills the 
>>> field ... throwing the file back to the client doesn't **sound smart**. 
>>> However, it's a chicken-and-egg problem.... let's say you want to upload a 
>>> picture, you require the picture to have a tag, but the user forgets 
>>> it..... in this case, retaining in some way the file can be done...
>>> But let's say you want the file to end with .txt only ..... the .exe 
>>> file should be discarded at all.
>>> It's up to you to provide logic consistent with the workflow you want 
>>> for your users ..... 
>>> /me would provide an async upload, store the id on the session and let 
>>> the user play with the remaining fields in a form.
>>> Everyday I'd prune all the attachments received with no "remaining 
>>> fields" attached. 
>>>
>>> On Thursday, March 28, 2013 5:08:24 PM UTC+1, Lamps902 wrote:
>>>>
>>>> When a form has errors, the value of an upload field is reset upon 
>>>> submission. Is there a way to retain this value, or does this pretty much 
>>>> have to be handled manually (i.e. by storing the value of the upload field 
>>>> or by prompting the user to specify the file again)?
>>>>
>>>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to