database types for system design interviews