Also I fixed some bugs https://github.com/web2py/pydal/issues/548

пятница, 23 октября 2020 г. в 08:25:23 UTC+3, [email protected]: 

>
> Shared pk works just fine:
>
>
> db.define_table(
>     'datetime_duration',
>     Field('superclass','reference duration') ,
>     primarykey = ['superclass']
> )
> воскресенье, 18 октября 2020 г. в 02:23:00 UTC+3, BigBaaadBob: 
>
>> It's hard to believe that I was talking about this in 2013 
>> <https://groups.google.com/g/web2py/c/Vh-J2AQ-mBE/m/xOMh3mm7ovEJ>, but 
>> here it is again!
>>
>> I'm wondering if you can directly implement the Table-per-type or 
>> Shared-primary-key method of inheritance in the DAL?
>>
>> [image: subclass-gradstu-scheme.gif]
>>
>> The standard DAL inheritance method (including a table as a field) is a 
>> Table-per-concrete approach that has pros and cons. In particular for me, 
>> it is harder to deal with the common stuff (the stuff in the superclass) 
>> with the standard DAL method.  In many cases I never need to refer to the 
>> subclass specifics.
>>
>> The best I have been able to do is something like the below. There is a 
>> lot of common stuff in the duration table (and, btw, the duration can be 
>> overridden and isn't necessarily the difference of the start and stop 
>> values in the subclasses). Depending on how the time is tracked, there are 
>> different algorithms used to compute a duration, for  example subtracting 
>> two datetimes or subtracting two floats (representing hours).
>>
>> db.define_table(
>>     'duration',
>>     # Common stuff
>>     Field('duration','decimal(10,2)',notnull=True),
>> )
>>
>> db.define_table(
>>     'datetime_duration',
>>     Field('superclass','reference duration',unique=True,notnull=True),
>>     Field('start','datetime',notnull=True),
>>     Field('stop','datetime',notnull=True),
>> )
>>
>> db.define_table(
>>     'hour_duration',
>>     Field('superclass','reference duration',unique=True,notnull=True),
>>     Field('start','decimal(10,2)',notnull=True),
>>     Field('stop','decimal(10,2)',notnull=True),
>> )
>>
>>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/c110dd27-35ea-4324-8ebe-c37580133a11n%40googlegroups.com.

Reply via email to