Access to DB partially

We may want to create common accessing code with using protocol if we have multiple database object.

protocol Partial {
  var author: Author.EntityTableKey { get }

struct Database: DatabaseType {

  struct Schema: EntitySchemaType, Partial {
    let book = Book.EntityTableKey()
    let author = Author.EntityTableKey()

  struct Indexes: IndexesType {

  var _backingStorage: BackingStorage = .init()
func access<DB: DatabaseType>(db: DB) -> Int where DB.Schema : Partial {

Inside of access function, it supports only accessing to entity Partial protocol has.