IS_MEMBER_OF Party-to-Party | Party Data
Description
The IS_MEMBER_OF relationship connects parties of type person to a party of type organization, indicating a membership relationship that is sometimes contracted as the organizational identity, such as in the case of a comedy duo, a writing team, or a band. Informally, we'll call this a client group but that is just for the purpose of this discussion.
Additionally, IS_MEMBER_OF connects :ParticipantMembership nodes to :ParticipantGroup nodes. This NetSuite-based pattern allows membership-specific data (addresses, external records, etc.) to be attached to the :ParticipantMembership nexus node.
Label
:IS_MEMBER_OF
Valid nodes
| From | Relationship | To | Cardinality |
|---|---|---|---|
| Client Parties with property type: "person" that have a :HAS_ROLE relationship to a :Role {name: "Client"} | :IS_MEMBER_OF | Client Parties with property type: "organization" that have a :HAS_ROLE relationship to a :Role {name: "Client" } | 0..n |
| ParticipantMembership A node with the :ParticipantMembership label | :IS_MEMBER_OF | ParticipantGroup A node with the :ParticipantGroup label | 0..n |
Properties
In addition to the standard relationship properties, IS_MEMBER_OF makes use of the subType property as follows:
| Value | Description |
|---|---|
| Band | The party is a member of a band |
| Team | The party is part of a group of people who are contracted together, such as a writing team |
CREATE
UPDATE
DELETE
Examples
cypher
// Assuming "Band" is a subType of the relationship 'IS_MEMBER_OF', and 'active' is true, and the group has an active client role
MATCH (group:Party)-[r:IS_MEMBER_OF {subType: "Band", active: true}]->(:Party)
WHERE (group)-[:HAS_ROLE {name: "Client", active: true}]->(:Role)
RETURN group.name, group.idcypher
// Assuming the organization's partyId is provided as a parameter
MATCH (:Party {id: $partyId})<-[:IS_MEMBER_OF {active: true}]-(member:Party)
RETURN member.name, member.idcypher
// Assuming the client's partyId is provided as a parameter
MATCH (client:Party {id: $partyId})-[r:IS_MEMBER_OF {active: true}]->(group:Party)
RETURN group.name, group.id, r.subType