Projects, Domains and Tables
Projects are a collection of Domains, Domains are a collection of Tables, however simple this seems, it is not so… Domains are also inter-related by tables, a good example of this is the following schematic.
Projects are separate databases structures in the underlying database system (monsterDB) and although the User Interface can open any number of projects, it can only talk to one at a time. Projects could also be on different installations of Custodian on different machines, in this case a different installation will be required to support this model. All the data in one project is only accessible (or visible) via that project, it is physically separated on the same machine.
A table is a list of interrelated objects such as products, countries, suppliers etc, but these tables need t be able to relate to other tables (as in a foreign key relationship in relational modeling) and in most cases these relationships need to cross the boundaries of a domain. A domain is a logical (and in fact physical) set of tables that describe a certain part of a business such as suppliers, products, customers etc and store information that would be matchable within that domain (ie suppliers could be considered to be matchable to locations and in fact this discovery could be useful!)
As such in EntityStream we model a domain, we call it a domain and we store all tables together in this domain but allow cross domain relationships into other domains enabling an ownership of data within a domain but not creating a silo of information.
Adding a Project.
Adding a new project is simple, under the project menu choose the new option as depicted in the image below, you can then enter a project name and providing there isn’t already one of the same name, you can hit create project and a new database will be created for you:
Once a new project is created you are able to view and switch domains using the switch context menu on the project menu or the context button on the main dashboard. You will notice that you already have one domain called NODES, NODES is the default domain name, you can use it if you wish. In the event that you want to move your tables from one domain to another, then you will need to use the export-import functionality in the modeling section.
Adding a new domain will be a little like starting a new project – there will be no tables, concepts, indexes etc available – but don’t worry they are safely stored in the other domains and you can get back to them by clicking on the context menu.