Hello,
Im not sure if I fully understand your example but I believe that the
relation:
"Contruction and Company" is a many to many relationship so you just
need to have a third table in the middle

Construction <---> Reference <----> Company
and Reference is a third table that keep track of the company ID and
Contruction ID

I hope it helps.

Cheers,

On Nov 8, 1:18 pm, demetrio <[email protected]> wrote:
> Hi everyone,
>
> i'm starting a new project with web2py, and now i'm defining the model
> of the app and i have some questions.
>
> the "classical" and simplified model (there are lots of tables but the
> questions are about those)  is something like:
>
> Table 'companies'
>   - id_company
>   - name
>   - ....
>
> Table 'guild'
>   - id_guild
>   - name
>   - ....
>
> Table 'construction' (i don't really know if "construction" is the
> correct english word for this example, or maybe "building_lot")
>   - id_construction
>   - name
>   - ....
>
> And now I have to make the relations. In this case one companies can
> have many guilds (i.e: the company 'company1' owns to the 'painters'
> guild and the 'doors' guild). This relation would be easy in web2py
> with a list:reference.
>
> But the case is that in a building lot, can have one company working
> with an specific guild, and in other building lot, the same company
> working with another guild.
>
> For example:
>    In the construction "A" of 5 apartments, the company "company1"
> only works installing windows.
>    In the construction "B" of 20 apartments, the company "company1"
> only works painting the walls.
>
> In a classic table_has_table model, I could have this:
>
> Table "company_has_guild":
>   - id_company_has_guild
>   - id_company
>   - id_guild
>
> And:
>
> Table "construction_has_company_has_guild" (and at this moment don't
> know if this is the best way to make this relation...)
>   - id_construction
>   - id_company_has_guild
>
> As I have mentioned before, the first relation (company_has_guilds)
> with web2py would be easy:
>
> db.define_table("guilds",
>    Field("name", "string")
>    )
>
> db.define_table("company",
>    Field("name", "string"),
>    Field("guilds", "list:reference guilds")
>    )
>
> Any suggestions about the creation of the second relation
> (construction_has_company_has_guild)? Or I have to create the
> "classic" table_has_table model? In this case, there is some efficient
> way to make it in web2py?
>
> Thanks in advance!
> Daniel

Reply via email to