An interesting conundrum about dealing with data in a company with so many different types of biological teams and experiments is satisfying domain specific needs with very general database infrastructure.

We have a relational database and the models, like Sample, have a well defined meaning. But if a team wants a Tissue Sample, now I have to specify a set of properties to store for each Sample to make it a new "type", e.g organ.

Generality is awesome but sometimes kinda messy.

We can and still do enforce schemas though. We've just moved this logic out of the main database and the API that serves it.