Closed IanTDuncan closed 2 months ago
Here's the code for the tables mentioned above:
'
package com.example.mealtime1
import android.content.ContentValues import android.content.Context import android.database.sqlite.SQLiteDatabase import android.database.sqlite.SQLiteOpenHelper
class DatabaseHelper(context: Context) : SQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION) {
companion object {
const val DATABASE_NAME = "MealTimeDB"
const val DATABASE_VERSION = 1
}
// User Table
private val createTableUser = """
CREATE TABLE User (
userID INTEGER PRIMARY KEY AUTOINCREMENT
);
"""
// MealPlan Table
private val createMealPlan = """
CREATE TABLE MealPlan (
mealPlanID INTEGER PRIMARY KEY AUTOINCREMENT,
userID INTEGER,
mealID INTEGER,
FOREIGN KEY (userID) REFERENCES User(UserID),
FOREIGN KEY (mealID) REFERENCES Results(mealID)
);
"""
// Results Table
private val createTableResults = """
CREATE TABLE Results (
mealID INTEGER PRIMARY KEY AUTOINCREMENT,
mealName TEXT,
mealPic TEXT,
mealNutritionLabel TEXT
);
"""
// ShoppingList Table
private val createTableShoppingList = """
CREATE TABLE ShoppingList ( listID INTEGER PRIMARY KEY AUTOINCREMENT, mealID INTEGER, mealPlanID INTEGER, IngrediantName TEXT, Quantity INTEGER, Unit TEXT, PricePerUnit INTEGER, FOREIGN KEY (mealID) REFERENCES Results (mealID), FOREIGN KEY (mealPlanID) REFERENCES MealPlan(mealPlanID) ); """
override fun onCreate(db: SQLiteDatabase) {
db.execSQL(createTableUser)
db.execSQL(createMealPlan)
db.execSQL(createTableResults)
db.execSQL(createTableShoppingList)
}
override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
db.execSQL("DROP TABLE IF EXISTS User;")
db.execSQL("DROP TABLE IF EXISTS MealPlan;")
db.execSQL("DROP TABLE IF EXISTS Results;")
db.execSQL("DROP TABLE IF EXISTS ShoppingList;")
onCreate(db)
}
}
'
@IanTDuncan SQLite doesn't contain arrays or lists, so I guess what we can do is just adding meals to the same mealPlanID?
@aaleksandraristic Thank you very much!
@IanTDuncan Please let me know how it works and if something needs to be changed or added
@aaleksandraristic Alright I'll make sure to keep you updated.
API - Database Implementation
Description:
Implement databases within the code and then use them to reduce API calls and move variables around.
Current Database:
Steps to Reproduce:
Expected vs. Actual Behavior:
Code Snippets:
MainMenuActivity.kt Code Addition:
DeviceIDManager.kt:
Updated DatabaseHelper Class:
Environment Details:
Operating System: Windows 11 Kotlin Version: 1.5.21 Android Studio Iguana 2023.2.1 Android Gradle Plugin Version: 8.3.0 Gradle Version: 8.4
For Issue Resolution:
Implement databases
Current Status:
IN-PROGRESS