I want to implement a database in a private blockchain. It consists of four tables and my idea is to use four smart contracts, one for one table. For each table i'll put the corresponding attributes and its relative CRUD methods in its corrispondent smart contract (i found a nice explanation of CRUD methods here).
Since the CRUD operations behave in a similar way for the four smart contracts, is there a way (or a design pattern) to uncouple the CRUD operations from the definition of the smart contract? So that each smart contract invokes CRUD methods that are defined only one time (and not in each smart contract, in a redundant way) maybe in a separate smart contract.