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 web2py+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/b74dbd9a-249c-4d4f-8497-b820ae3cc16en%40googlegroups.com.