Add Foreign ID for faster retreival

This commit is contained in:
derek.holloway
2025-07-14 08:03:32 -07:00
parent 84fb9f14b1
commit b7462329c1
2 changed files with 19 additions and 3 deletions
+4
View File
@@ -57,9 +57,11 @@ CREATE TABLE IF NOT EXISTS `Resume` (
CREATE TABLE IF NOT EXISTS `ResumeExperienceBullet` ( CREATE TABLE IF NOT EXISTS `ResumeExperienceBullet` (
`ID` int NOT NULL AUTO_INCREMENT, `ID` int NOT NULL AUTO_INCREMENT,
`ResumeID` int NOT NULL,
`ResumeExperienceID` int NOT NULL, `ResumeExperienceID` int NOT NULL,
`JobFunction` text NOT NULL, `JobFunction` text NOT NULL,
PRIMARY KEY (`ID`), PRIMARY KEY (`ID`),
FOREIGN KEY (`ResumeID`) REFERENCES `Resume`(`ID`) ON DELETE CASCADE,
FOREIGN KEY (`ResumeExperienceID`) REFERENCES `ResumeExperience`(`ID`) ON DELETE CASCADE FOREIGN KEY (`ResumeExperienceID`) REFERENCES `ResumeExperience`(`ID`) ON DELETE CASCADE
) AUTO_INCREMENT=1; ) AUTO_INCREMENT=1;
@@ -77,10 +79,12 @@ CREATE TABLE IF NOT EXISTS `Resume` (
CREATE TABLE IF NOT EXISTS `ResumeMillitaryBullet` ( CREATE TABLE IF NOT EXISTS `ResumeMillitaryBullet` (
`ID` int NOT NULL AUTO_INCREMENT, `ID` int NOT NULL AUTO_INCREMENT,
`ResumeID` int NOT NULL,
`ResumeMillitaryID` int NOT NULL, `ResumeMillitaryID` int NOT NULL,
`Achevement` varchar(100) NOT NULL, `Achevement` varchar(100) NOT NULL,
`Description` text DEFAULT NULL, `Description` text DEFAULT NULL,
PRIMARY KEY (`ID`), PRIMARY KEY (`ID`),
FOREIGN KEY (`ResumeID`) REFERENCES `Resume`(`ID`) ON DELETE CASCADE,
FOREIGN KEY (`ResumeMillitaryID`) REFERENCES `ResumeMillitary`(`ID`) ON DELETE CASCADE FOREIGN KEY (`ResumeMillitaryID`) REFERENCES `ResumeMillitary`(`ID`) ON DELETE CASCADE
) AUTO_INCREMENT=1; ) AUTO_INCREMENT=1;
+15 -3
View File
@@ -63,7 +63,9 @@ namespace BoredCareers.Services.DatabaseService {
connection.Open(); connection.Open();
MySqlCommand resumeCommand = new MySqlCommand("SELECT * FROM Resume WHERE ID = @ResumeID;", connection); MySqlCommand resumeCommand = new MySqlCommand("SELECT * FROM Resume WHERE ID = @ResumeID;", connection);
MySqlCommand ResumeExperienceCommand = new MySqlCommand("SELECT * FROM ResumeExperience WHERE ResumeID = @ResumeID;", connection); MySqlCommand ResumeExperienceCommand = new MySqlCommand("SELECT * FROM ResumeExperience WHERE ResumeID = @ResumeID;", connection);
MySqlCommand ResumeExperienceBulletCommand = new MySqlCommand("SELECT * FROM ResumeExperienceBullet WHERE ResumeID = @ResumeID;");
MySqlCommand ResumeMillitaryCommand = new MySqlCommand("SELECT * FROM ResumeMillitary WHERE ResumeID = @ResumeID;", connection); MySqlCommand ResumeMillitaryCommand = new MySqlCommand("SELECT * FROM ResumeMillitary WHERE ResumeID = @ResumeID;", connection);
MySqlCommand ResumeMillitaryBulletCommand = new MySqlCommand("SELECT * FROM ResumeMillitaryBullet WHERE ResumeID = @ResumeID", connection);
MySqlCommand ResumeEducationCommand = new MySqlCommand("SELECT * FROM ResumeEducation WHERE ResumeID = @ResumeID;", connection); MySqlCommand ResumeEducationCommand = new MySqlCommand("SELECT * FROM ResumeEducation WHERE ResumeID = @ResumeID;", connection);
MySqlCommand ResumeSkillCommand = new MySqlCommand("SELECT * FROM ResumeSkill WHERE ResumeID = @ResumeID;", connection); MySqlCommand ResumeSkillCommand = new MySqlCommand("SELECT * FROM ResumeSkill WHERE ResumeID = @ResumeID;", connection);
MySqlCommand ResumeLanguageCommand = new MySqlCommand("SELECT * FROM ResumeLanguage WHERE ResumeID = @ResumeID;", connection); MySqlCommand ResumeLanguageCommand = new MySqlCommand("SELECT * FROM ResumeLanguage WHERE ResumeID = @ResumeID;", connection);
@@ -72,7 +74,9 @@ namespace BoredCareers.Services.DatabaseService {
resumeCommand.Parameters.AddWithValue("@ResumeID", ResumeID); resumeCommand.Parameters.AddWithValue("@ResumeID", ResumeID);
ResumeExperienceCommand.Parameters.AddWithValue("@ResumeID", ResumeID); ResumeExperienceCommand.Parameters.AddWithValue("@ResumeID", ResumeID);
ResumeExperienceBulletCommand.Parameters.AddWithValue("@ResumeID", ResumeID);
ResumeMillitaryCommand.Parameters.AddWithValue("@ResumeID", ResumeID); ResumeMillitaryCommand.Parameters.AddWithValue("@ResumeID", ResumeID);
ResumeMillitaryBulletCommand.Parameters.AddWithValue("@ResumeID", ResumeID);
ResumeEducationCommand.Parameters.AddWithValue("@ResumeID", ResumeID); ResumeEducationCommand.Parameters.AddWithValue("@ResumeID", ResumeID);
ResumeSkillCommand.Parameters.AddWithValue("@ResumeID", ResumeID); ResumeSkillCommand.Parameters.AddWithValue("@ResumeID", ResumeID);
ResumeLanguageCommand.Parameters.AddWithValue("@ResumeID", ResumeID); ResumeLanguageCommand.Parameters.AddWithValue("@ResumeID", ResumeID);
@@ -81,14 +85,16 @@ namespace BoredCareers.Services.DatabaseService {
Task<DbDataReader> resumeReader = resumeCommand.ExecuteReaderAsync(); Task<DbDataReader> resumeReader = resumeCommand.ExecuteReaderAsync();
Task<DbDataReader> ResumeExperienceReader = ResumeExperienceCommand.ExecuteReaderAsync(); Task<DbDataReader> ResumeExperienceReader = ResumeExperienceCommand.ExecuteReaderAsync();
Task<DbDataReader> ResumeExperienceBulletReader = ResumeExperienceBulletCommand.ExecuteReaderAsync();
Task<DbDataReader> ResumeMillitaryReader = ResumeMillitaryCommand.ExecuteReaderAsync(); Task<DbDataReader> ResumeMillitaryReader = ResumeMillitaryCommand.ExecuteReaderAsync();
Task<DbDataReader> ResumeMillitaryBulletReader = ResumeMillitaryBulletCommand.ExecuteReaderAsync();
Task<DbDataReader> ResumeEducationReader = ResumeEducationCommand.ExecuteReaderAsync(); Task<DbDataReader> ResumeEducationReader = ResumeEducationCommand.ExecuteReaderAsync();
Task<DbDataReader> ResumeSkillReader = ResumeSkillCommand.ExecuteReaderAsync(); Task<DbDataReader> ResumeSkillReader = ResumeSkillCommand.ExecuteReaderAsync();
Task<DbDataReader> ResumeLanguageReader = ResumeLanguageCommand.ExecuteReaderAsync(); Task<DbDataReader> ResumeLanguageReader = ResumeLanguageCommand.ExecuteReaderAsync();
Task<DbDataReader> ResumeCertificationReader = ResumeCertificationCommand.ExecuteReaderAsync(); Task<DbDataReader> ResumeCertificationReader = ResumeCertificationCommand.ExecuteReaderAsync();
Task<DbDataReader> ResumeProjectnReader = ResumeProjectCommand.ExecuteReaderAsync(); Task<DbDataReader> ResumeProjectnReader = ResumeProjectCommand.ExecuteReaderAsync();
await Task.WhenAll(resumeReader, ResumeExperienceReader, ResumeMillitaryReader, ResumeEducationReader, ResumeSkillReader, ResumeLanguageReader, ResumeCertificationReader, ResumeProjectnReader); await Task.WhenAll(resumeReader, ResumeExperienceReader, ResumeExperienceBulletReader, ResumeMillitaryReader, ResumeMillitaryBulletReader, ResumeEducationReader, ResumeSkillReader, ResumeLanguageReader, ResumeCertificationReader, ResumeProjectnReader);
using (DbDataReader reader = await resumeReader) { using (DbDataReader reader = await resumeReader) {
while (await reader.ReadAsync()) { while (await reader.ReadAsync()) {
@@ -125,12 +131,18 @@ namespace BoredCareers.Services.DatabaseService {
} }
using (DbDataReader reader = await ResumeExperienceReader) { using (DbDataReader reader = await ResumeExperienceReader) {
// Need to run ResumeExperienceBullet after
}
using (DbDataReader reader = await ResumeExperienceBulletReader) {
} }
using (DbDataReader reader = await ResumeMillitaryReader) { using (DbDataReader reader = await ResumeMillitaryReader) {
// Need to run ResumeMillitaryBullet after
}
using (DbDataReader reader = await ResumeMillitaryBulletReader) {
} }