Best Practice Question

I am creating a SuiteCRM 7.2.3 module to support a large civic event held annually in my city. The name of the event is CFWC.

This event consists of several sub-events, called things like “Rising Stars”, “Saturday Day Market”, and “Friday Grand Tasting”, all under the umbrella of CFWC 2015.

I am wondering what the best practice would be for setting the events & sub-events up in SuiteCRM.

I’ve currently got an Event called “CFWC 2015” and everyone that is participating in any sub-event(s) is listed under that, but I’d like a way to have each of the sub-events be an individual Event. But I cannot figure out how to “unify” all the Events under a specific year (so I can search for only 2015 Events and not receive results for 2014 Events).

I’d thought about adding an “Event Year” field to the Event module, but I am not sure how to relate to that from the other modules (including my custom modules), or if that is the best way to approach it. Ideally, I’d be able to search for “Event Year” from my custom module to show everyone who is participating in that year’s events.

CFWC 2015
–Rising Stars 2015
–Friday Grand Tasting 2015
–Saturday Day Market 2015

CFWC 2014
–Rising Stars 2014
–Friday Grand Tasting 2014
–Saturday Day Market 2014

Can anyone offer any advice? I’d appreciate it… I think I am capable of implementing the best-practice. I am just not sure what that best-practice is!

Thanks in advance.

I am thinking that I will create custom Event modules for each of the different event types (“Rising Star”, etc.) and create a “glue” module that contains an Event Year field and relates all the custom event modules to that Event Year.

That way, each of the different Events, which are all slightly different in what they require, can have their own layouts and field-sets. They will all be related to the “glue” module as one-to-many relationships (right?) – each “glue” module can have many relationships.

I think I’ll be able to see EVERYTHING happening each event year by searching just on the “glue” module’s “Event Year” field. I’ll be able to see the participants in each event type (“Rising Star”, etc.) by selecting that Event module. I’ll be able to go to Contact or Account and see their related Events…

Does that sound like the best approach?

Any opinions? Thanks!

Can anyone direct me to answers to these questions?

It really depends on how you want to use the data. You could use a model similar to Product Categories where one Category can be a parent to another, or you could have a separate module which handled each year. Personally I think you were going down the right track with adding a field which fills the year, I would then generate reports based on that field/sort my list views on that field.

If you were to create a separate module you could have it relate to events and also to the individuals, then when an event is related to the parent module have a Logic Hook which also relates all individuals. The thing to think about is how you want the workflow to look and how you need the data represented/accessed.

Sorry I can’t be more helpful but it is hard to know the best solution without the how or why of what you would like to do with the records.


why don’t you simply create a one-to-many relationship between Events and Events ?

1 Like

That’s completely brilliant and simple, and probably the solution I’m searching for, Jan. It just had not occurred to me! Thanks for the nudge. That seems like a great direction in which to explore…

Thank you for the reply. I’ve added a One to Many relationship from Events to Events.

I am confused, now, about how to do reporting on that. When I create a new Report on the Events module, the options along the left side are bewildering… Here’s a screenshot.

Why are there two “Events : Events” entries? What’s the difference? When would I use one over the other, and why?

As it may be helpful, here’s a list of my Events Relationships…


Due to the nature of a relationship with itself, each Event can be

  • a Child to a Parent Event
  • a Parent to other Child Events

I think that’s the cause that Events is listed 2 times.

You might want to try to change the label in your relationship setup for your related module to something like “Child Events”. The Reports editor might display this label so you can see what relationship represents the child role, and what relationship represents the parent role.

Each of my sub-events has some unique fields.

For example, I have an Event called “CFWC 2015” (which is the parent Event, containing that year’s sub-events).

Then I have Sub-Events, like:
Rising Star Brunch 2015
Demo 2015
EatWise Kitchen 2015

Each of the sub-events are related to the parent Event. The sub-events each require different fields to collect information relevant to that specific event. “Rising Star” has (some) different fields than “Demo”, for example.

I’m thinking of modifying the Event entity with tabs for each Sub-Event type (so if the user is recording information about Demo, they would click the “Demo” tab in the Event entity), but is there a better way to solve this so I can collect appropriate information about each Event?

Any suggestions on the above?

I think creating Tabs inside the Event entity for each Type of Event (Demo, Grand Tasting, Competition, etc.) and containing within those Tabs the information specific to the Event Type is the route I will explore.