Your approach looks ok to me, however when your application gets bigger and more complex you might be interested in implementing the Factory pattern:
https://dzone.com/articles/design-patterns-c-factory[
^]
C# Design Patterns - Factory Method - Code Maze[
^]
Sometimes creating an (UML) diagram can help, see:
How do I design an employee manager relationship class diagram[
^]
To validate the employee name you can use a UNIQUE constraint in your database, or if you prefer a C# solution you could use a dictionary, see:
Dictionary<TKey,TValue> Class (System.Collections.Generic) | Microsoft Docs[
^]
If your database needs are simple I would recommend
LiteDB, see:
best-databases-for-a-small-net-application[
^]
If you want to use SQL Server (warning not the easiest option) take a look at:
Querying SQL Server Tables from .NET[
^]
If you want a database independent solution then you can use an
ORM, see:
orms-for-c[
^]
To learn about database design, see:
online-resources-to-learn-relational-database-design[
^]