Making the lookup tables strings would simplify the code and using integers in the primary key provides no benefit. This would break the database layout though, or at least be quite hard to migrate. Another consideration if extending the lookup tables might be to have additional optional fields that allow specifying what scripts to call out to, which would allow users to extend the system with no algorithms without modifying the core pipeline library.
Making the lookup tables strings would simplify the code and using integers in the primary key provides no benefit. This would break the database layout though, or at least be quite hard to migrate. Another consideration if extending the lookup tables might be to have additional optional fields that allow specifying what scripts to call out to, which would allow users to extend the system with no algorithms without modifying the core pipeline library.