I'm designing the database for an application that will need to track inventory. I'm not sure if it's good database design to use "inventory pulls" and "inventory pushes" tables to store each change to the inventory, and calculate each item's count based on those pulls and pushes.
Doing it this way would would allow me to associate a "pull" with another data entity, like the employee who pulled the item, or the order for which the item was pulled. On the other hand, it might make the application very slow in the future when the list gets really big.
I need to be able to associate these transactions ("pulls" and "pushes") to other entities, but I'm concerned about the performance of the application. If I use the inventory table method, I would need to track this data elsewhere.
Does this design choice make sense?