Introduction to project
Here I will place all my steps in creation the app and the database for managing the museum’s art works history etc.
We have to start with developing the schema for database for our application. For the provided constraints for data I decided to create such schema for PostgreSQL database to keep the data for the exhibits in the museum.
We have to explain two things that are assumed for this database and can be done using some database triggers.
- We have to ensure that there are only artists in artist table whose art works are in museum database
- Only single column of (exhibition_id, hire_id, storage_id) in event_of_exhibit can be non null in single row and that means the exhibit is or was in state specified by this column
English version of database schema
[![Database schema image](https://kotlin-dev.ml/img/project/database-museum/schema_en.svg)](https://kotlin-dev.ml/img/project/database-museum/schema_en.svg)
Polish version of database schema
[![Database schema image](https://kotlin-dev.ml/img/project/database-museum/schema_pl.svg)](https://kotlin-dev.ml/img/project/database-museum/schema_pl.svg)
Database SQL script
Know we need to take care about the implementation of the specified datadase schema. Of course we can use some tools for generation the SQL based on our schema but we have to be really careful to create all constraints additionally and check these ones created by our tool.
My example of the tables generation script for PostgreSQL is:
Download English version of script
Download Polish version of script
Database access application
The application for accessing the database data can be downloaded from here. It’s also available on my GitLab account but will be visible to all users in the future.
The app was written in Kotlin using Exposed framework for connection with database and managin all the data stuff. To build graphical interface of application I used the TornadoFX framework which is based on JavaFX.