Skip to content

Content Relationships

Craig Zheng edited this page Apr 28, 2011 · 1 revision

Background

Relationships in Symphony 2 are are clunky, inconsistently implemented, and almost completely siloed into field extensions. In Symphony 3, creating and managing content relationships should be easy and elegant from the start, and their implementation should be more modular.

The following was proposed during a working group chat on 28 April 2011 (transcript). Draft 1 is in progress pending a follow-up discussion.

Proposal

Symphony 3 should handle relationships in the core. Exactly what this entails is subject to a follow-up chat.

Scope

The scope of this proposal is primarily around how content relationships are architected from a system perspective, but the user experience of creating and managing relationships needs to be considered in a broad sense.

Goals

Agreed-upon

  • The core should be responsible for handling the relationships on a fundamental level

    e.g. creating. removing, fetching related entries, etc

  • The core should support all the different kinds of relationships

    see for example Types of associations in Rails

  • The core will need to provide a relationships API for extensions to work with.

Under discussion

  • Users should be able to manage basic relationships elegantly by default

  • System should provide sane defaults for relationship behavior that are configurable, and the API should allow these defaults to be overridden

Proposals

Under discussion

  • Whether system's basic, default relationship behaviors should be built into core or provided in a bundled default extension

  • Whether relationship is defined via a field, or defined on the relationship itself and optionally rendered by a field

Next Steps

  1. We will continue fleshing out use cases and system implications via the wiki:

  2. We will reconvene in a follow-up chat to discuss the approaches

Clone this wiki locally