Say I have three classes: EntityManager, Entity, and Component.
Entity has an array of components (pointers), and each of these components have a field that is a pointer to the encapsulating Entity.
EntityManager has an array of entities, and each entity has a pointer to its encapsulating EntityManager.
The reason for this design is data reliance. Components need access to the encapsulating entity's fields and some components depend on other entity's fields (pointer to entity manager).
Is this "cyclical" design a bad practice? Should I rethink my design?