Licensing must detect conflict-of-interest paths between licensed contractors and permitted job sites. How should those relationships be modeled in SQL?
Select an answer to reveal the explanation.
Short Explanation
Graph edges are the string between a contractor pin and a jobsite pin on the conflict board—without the edge, SQL cannot walk who is tied to which municipal site. Heaps and fee columnstores do not encode that relationship.
Full Explanation
Conflict-of-interest detection depends on knowing which licensed contractors relate to which permitted job sites. SQL graph edge tables explicitly store those relationships between contractor nodes and job-site nodes so MATCH queries can traverse paths that a flat list of names cannot express. That model is the appropriate Azure SQL design when the business question is relational connectivity among municipal licensing entities rather than isolated attributes. A heap of contractor names without edges cannot represent site links. A columnstore of permit fees may accelerate fee analytics but ignores contractor–site relationships. A DEFAULT that forever sets conflict flags to false hard-codes a conclusion instead of deriving conflicts from actual links. Caveat: graph edges encode declared relationships; conflict policy still needs clear rules for what path lengths or edge types constitute a prohibited conflict in licensing reviews. Keep node keys stable so historical edges remain meaningful after contractor renewals. Operational check: insert contractor and job-site nodes with an edge representing a known link, then run a MATCH query that returns contractors connected to a given permitted site and confirm the expected node appears.