Database / Weaviate Vector database Interview questions
Why use cross-references sparingly, according to Weaviate's own guidance?
Weaviate's documentation actively encourages minimizing cross-reference usage, suggesting teams first consider whether a relationship could instead be represented by denormalizing related data directly into an object's own properties, or by using filters against those properties, rather than modeling the schema the way a normalized relational database would.
The underlying reason is architectural fit: Weaviate is optimized for vector, keyword, and hybrid search combined with property-based filtering on a single object at a time, and resolving a cross-reference at query time (following a link to fetch data from a different collection) doesn't benefit from those same optimizations the way a direct property lookup does. Heavy reliance on cross-reference traversal, especially multi-hop traversal across several linked collections, can therefore become a performance bottleneck that a more denormalized schema, closer in spirit to how document databases are typically modeled, would avoid entirely.
This doesn't mean cross-references are never appropriate, genuinely relational data that's expensive or impractical to denormalize (like a many-to-many relationship between two large, independently-growing collections) is still a reasonable case for them, but the general guidance is to default toward a flatter, more self-contained object schema unless there's a specific reason a cross-reference is genuinely the better fit.
More Related questions...