https://github.com/calebowens/peanutdb
https://github.com/calebowens/peanutdb
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/calebowens/peanutdb
- Owner: calebowens
- Created: 2021-11-19T22:44:47.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-11-19T23:54:30.000Z (over 4 years ago)
- Last Synced: 2025-12-25T04:48:50.886Z (6 months ago)
- Size: 1000 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# PeanutDB
An inheritance based embedded database.
## What is the goal of this database?
Many projects make use of inheritance to prevent duplicate code, and also as a form of polymorphism. Storing these polymorphic types in a database can be difficut as you either have to have tables for each subtype, one table with nullable columns, or has one type relations to hold the extra data. I dont think that any of these are acceptable and should be abstracted out. This project will allow you to define tables that extend others, and enable you to use polymorphism in your queries.
## Embedded DB?
I'm firstly going to build this project as an embedded database for the MVP but have the goal to expand it to be a fully fleged database system supporting multiple concurrent queries.
## Application Structure
I'm using the Law of Demeter as a design principle because it enables incrimental changes to small parts of the application without drastic overall refactoring.
### Frontend
The fronted will expose the public interface and will interact with mediary interfaces.
### Backend
The backed will be responsible for storing and reading data from a persistant location. The MVP backend will utilize a JSON file as this is easy to implement. Obviously this is not ideal but should make inital proof of concept implementation easier.