There are many ways around this. The easiest is define department before person and make created_by and modified_by integers instead of references.
On Oct 21, 4:18 am, billf <[EMAIL PROTECTED]> wrote: > I want to define tables as follows: > 1) extend t2_person with additional fields some of which are > references to other tables (many people work in "department" x?) > 2) all tables to have created_by and modified_by fields (which > themselves refer to t2_person) > > The problem is that to satisfy 1) I must define "department" before > t2_person. To satisfy 2) I must define t2_person before > "department". If I import T2 before "department" to get a reference > to t2_person, the re-definition of t2_person throws "table already > defined". > > Is the only solution to define my own "person" table that contains the > reference to "department" and a reference to t2_person? ...and then > import T2 (and t2_person), define "define" then define my "person". > > If the answer is yes then is that seen as "better design" or a "work- > around"? > > A second problem relates to the desire to navigate efficiently through > a database in more than one direction. In the above example, let > "person" be a bank account holder and the "other table" be a bank > account. Keeping it simple, assume it is a one-to-many relationship, > one-or-more accounts each owned by 1 account holder. If the only > reference is from person/account holder to account then a search to > see who owns account 12345678 is costly. If the only reference is > from account to person/account holder then the search for "accounts > for this account holder" is costly. > > However, in web2py, I cannot define an account with a reference to > person/account holder and a person/account holder with a reference to > account as one of the other definition fails with an undefined term. > > I believe I have to define a third table: person, account and > account_holder to overcome this. Is that correct? > > It seems the bottom-line is that the database design is constrained by > the fact that the table definitions are validated by python in a > single pass. If that is true it seems unfortunate. > > I would be very happy if someone can show me the error of my ways: > either the way to define the above tables or explain why I shouldn't > want to. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---