-1

I am a new web developer who just finished a full stack boot camp. This question is to get advice and suggestions in building a free web-based database site for archaeology research. I would appreciate suggestions for free or inexpensive hosting services (I am currently only familiar with Heroku and JawsDB).

For a side project to help a friend and build up my portfolio I want to build a web-based database for my friend’s doctoral research project. They are an archaeologist studying a Maya road and have data on the excavation site. Currently this data is in a number of different excel sheets and folders containing many photographs (images that would go in the DB). Our goal is to consolidate this for storage and to streamline querying so that they can look at patterns in the data and write analysis of those patterns.

The size is about 150-200GB of data right now, but ideally we would like to build it so that it could scale - future researchers could insert data, print queried tables, for example.

With a project of that relatively small size (~200GB but would scale), what would your suggestion be to host something like this? Is there a reliable free option with this much data that we could use for hosting? Probably no more than 10-15 people would be using it at the same time.

This is my first question on Database Admins and my first solo project after bootcamp so I really appreciate any advice you all have. Just trying to grow here and make a cool research tool.

EDITS: This was flagged as a duplicate because of the MySQL/NoSQL question, which has been removed. I'm wondering about hosting services. If you consider this off-topic, I would appreciate a nudge in the right direction as to where to go to ask about hosting service suggestions.

deweyD
  • 3
  • 4

1 Answers1

0

When I hear keywords like schema, join, and even dynamic querying between tables those automatically make me think to use a Relational Database Management System (RDBMS). So I think for your use cases (especially because there is already a defined schema), a RDBMS like MySQL is the correct choice.

200 GB of data for an entire database is considered on the smaller size these days, and you should be able to support databases 10x that size (perhaps even 100x) in MySQL when architected properly.

The last important thing I'll mention is you shouldn't store the actual image itself in the database (even though it's possible via encoding it as a string), rather the recommended best practice is to store the actual image on a centralized location (file share if the app runs internally, or hosted on a server for an externally accessed application) and store a reference to the file location instead.

Unfortunately the only piece of advice I wouldn't be knowledgeable enough on is a free host you can use.

J.D.
  • 37,483
  • 8
  • 54
  • 121
  • Thanks so much for your advice here. Can you clarify about hosting the images elsewhere? For example, if I built my own server as I plan to do (for an app that can be accessed by others on the web), are you saying that I would put all the images into the file system, where they will be hosted by whatever service I pick, and then just path to them that way?

    Or if you know a good resource I could look at/read to learn more about I would appreciate that as well. Either way thanks for your previous response.

    – deweyD Feb 11 '21 at 02:05
  • @RudiKraeher No problem at all! Yes store the images as files on the file system, and store the appropriate paths to them in your database. Some people try to serialize the image as an encoded string of bytes and store it in the database system, but this proves problematic for a few reasons. Best practice is to store the images themselves as files on a file system, and store the link to those files in the database. – J.D. Feb 11 '21 at 03:17
  • 1
    Great this a big help ty! – deweyD Feb 11 '21 at 03:24
  • @RudiKraeher Sure thing, np! Best of luck! Also, no obligation, but feel free to upvote and/or accept this answer so other users with similar questions see it verified as helpful. – J.D. Feb 11 '21 at 04:00