
However, I hope you can see that you have a lot of choices when it comes to creating your tables - and the screen layout that accompanies each with 'layout elements'. The table above looks like this in live view:Īs this is a review rather than a guide, I'm not going to go through the creation of all the tables and fields in the application.

Within an HR application this enables us to create the hierarchy within the organisation. This is what is called a 'Self Join' in that the table relates to itself. The latter subordinates field is interesting in that the system works it out based on a relationship between one Job and another shown above as the Reports To field. You'll notice that there are several fields in here that I didn't mention such as people and subordinates - these are going to show tables of related information on the screen. For Jobs, we need to create fields for Job Title, Job Description, a status to show it's 'current', and a link to its department. So, within an HR app, any Jobs table will be related to departments and then, in turn, employee's data will be related to Jobs (etc). It is this capability that gives rise to the term Relational Database and it is their ability to reflect real word connections between things that makes them so powerful. We are going to reflect this real world 'relationship' with a 'Join' or 'reference' within our database. Within an organisation (and therefore an HR app), Jobs tend to be organised into Departments (or similar). It provides a great deal of flexibility and scope. The main part of this screen, though, is the area where new fields (be they input of one type or another or formulae) and also where you can add headings and other 'layout elements' to your table. If you look further at the overall Table definition screen above you'll see how there are quite a few options which relate to the table itself (who can add, edit and read records for example) as well as the option to define scripts (code) which will run when a record is added or updated. You can then see the details of the Table and all it's fields:įrom where you can see further details of your field by simply clicking on it:

For example if you are looking at a department and in a particular record you simply select Edit Fields: Once in Admin, options are available which let you see and change the configuration of you tables and fields and their associated screen layouts. In Ninox, you add or change the organisation of the database by entering Admin mode (generally by clicking the Spanner icon top right). In this example, we are only going to input one piece of information about the department - the Name - all the other fields are then set up as calculations (headcount etc) or display's of related records (Jobs).

This is a good place to start when building an HR system because many of the subsequent tables are going to 'link' to it (for example, Jobs are in a department). This always requires some form of scripting language and I've found Ninox's NX language well up to the task.īut before we get into the more complex issues let's take a look at building some of the more straightforward elements of the application. By this I mean checking date ranges against working patterns and public holidays - and then creating a record for each day of the absence so that you can correctly report on absences with any range of dates. When I come across a new platform like Ninox, my first reaction is usually to see if it's possible to handle some of the tricky date calculations and manipulations needed to manage employees' absences (I know, it's sad!). This is an objective which it meets well - with the proviso that you still need to learn how a relational database works in principle to make the most of it (just like every other database platform). I've now been working with Ninox for a while and it's time to do a proper review - taking some examples from tour HR app, KasPer Pro, as we go.Īs discussed in my previous article, Ninox is a Cloud/Mac/iOS/Android database designed with users in mind - to give subject experts the tools they need to create their own solutions.
