Allowance type
AllowanceTypeID
Description
IsActive
EmployeeAllowance
EmployeeID
AllowanceTypeID
Amount
IsCurrent
StartDate
EndDate
Over the history of the employee, you'll need to be able to report on additional allowances. Some will get added. Some will need to be hidden from the user interface as they are no longer used. All need to show up in historical reports.
Having an AllowanceType table lets you create an admin section in your application for users to administer current Allowance Types to use without having to alter the structure of a table when new allowances come into play in the future.
The EmployeeAllowance table stores all the different allowance types and current values for each over the history of the employee. The IsCurrent bit column just makes it easier to run simple reports of the status of active employees. Trust me, you'll need to report on all of these scenarios at some time in the future if you do not already do so.
You may also need a separate table that contains AllowanceTypeID and an EmployeeTypeID if you need to permit certain allowance types for certain employee types. For example, a CEO might be eligible for an automobile allowance but a receptionist probably wouldn't.