MyCCE User/Entity Relationship Design

The Problem

How do we let users select a group of users to assign/relate an entity to? How do we record the selection of users as well as the mechanism for grouping to apply changes? There are several cases (notifications, content assignments, tag assignments) where an entity is related to a group of users, and the user who selects that group selects them based on location and role (supervisors in Tompkins county). The entity must then hold a relationship with those users, but also any future users of the group (supervisors in Tompkins county).



Content and Tag Assignments

Primary Questions

These questions need to be answered first and foremost

Is this all too complicated?

This is certainly complicated behind the scenes. Of course, that isn’t inherently a problem. But is it complicated for users? In some cases, no, some of this is expected behavior. If you want something to appear for supervisors in Tompkins, you don’t mean those who are currently supervisors in Tompkins. In that case it is absolutely necessary.

But I still feel like there are cases where it is confusing. The possible confusion lies in users not seeing changes in the content they see on their dashboard and sitewide. A user will get to know what content is where. If their location/role changes, and the content changes, that could be confusing. I guess in a perfect world, the change means that their position is different, which changes what content is relevant to them. That’s different and potentially confusing at first, but it’s intentional. That’s the whole point - MyCCE. Presenting staff with content that is relevant to them. Keeping this manageably by filtering out what isn’t relevant.

How do we maintain data consistency?

which hooks?

how do you keep it clean?


Do we need a second table?

Does doctrine allow for multiple levels of inheritance (for Content)?



Which actions change the concrete user lists?

Secondary Questions

Answer after Primary

What does the assignment creation process look like?

Closed Questions