Relational database, complex forms and other tips to start developing my platform

Hi everyone,
It’s a pleasure to be part of this community!
I’m totally new to omeka-s and I’m having some trouble understanding the logic behind building the platform.
I have to develop an Omeka S system, I immediately loved it but I’m out of my comfort zone (I always worked with postgresql, javascript and Laravel).
Obviously I’m reading the user guide and the developer guide but I feel I still have some confusion in my mind and for this I ask you for a little help.
For example, a simple thing: I have to manage a collection of artifacts, each one may be made of different material (gold, iron, stone …) and different construction techniques (lathe, carved, modeled by hand, …).
In my db logical scheme I have the artifact table and the material table related to the artifact table via foreign key:
artefact(id, name …),
material(id, artefact_id, material, technique, …)
In the filling form I should be able to add more materials to the artifact record and, on saving, the database should use a single transaction to be able to create the artifact record and all the materials records…is this scenario possible? What is the correct way to do this in Omeka S?
Thanks everyone for the help


Hi - in Omeka S all of these bottom-level nodes (database records/rows) are Items. So you’ll have items of item-type artifact, and items of item-type material. And then you’ll link each artifact to a number of materials.
Linked resources are explained here:
And the manual way to provide one resource as a metadata value for another is here:

You can’t automatically create multiple items/records at once, in the way you mean. But there are other time-savers. You’ll want to use CSV Import as the easiest way to bulk-create all of your items:

If you start with materials first, then you’ll have item IDs for all of them. Then when you create your artifacts in a second bulk import, you can provide the materials IDs in that CSV to create all the links.
You need to be sure to set the data type to “Omeka resource” when importing:

You probably want to make a few items by hand in Omeka first, to figure out the metadata fields of the resource templates for your artifacts and your materials (and any other item type you want to add).

You may find that you want a controlled vocabulary for, say, your construction techniques, but do not want to add extra information to those values - i.e. you just want text values in a list, not to make them items in themselves and add extra metadata to them. Items can be any type of node, as long as it makes sense to do descriptive work on each node. Otherwise you can just make your own controlled vocabularies using tools like Custom Vocab:

Thanks for the exercise in remembering my relational databases class. Let me know if this makes sense and I can provide further info as needed.

Your message is definitely helpful…so any db object is an omeka item, easy&clear.

The institution that asked me to update the already existing platform would really like to avoid using csv or other import systems, but would prefer to manage everything directly from the Omeka S interface.
So I thought of an alternative solution, perhaps a bit tricky.
I could create a tab for the main elements (artifact), save the data and then, from the artifact management page, allow the user to add all the elements connected to the main record (material, but also chronology, bibliography, geographical data, etc. .).
What do you think about it? Is it achievable?

Thanks so much for the help, and sorry if I ask trivial questions I think that once I’m comfortable using omeka everything will be simpler

:v: :sunglasses: