Мне нужно закрепить этот подход, поскольку я думаю, что архитектура базы данных может сильно устареть, если проект станет достаточно большим.
Моя проблема в том, что с текущей архитектурой, которую я разработал, база данных будет расти экспоненциально, поскольку это выглядит следующим образом:
entity Project {
projectId Long required
}
entity ProjectData {
yearId Long required
}
entity ProjectMetaData {
projectManager String,
company String,
agency String
}
entity FinancialData {
monthId Long required
}
entity KpiInfo {
otd Long,
oqd Long,
cumulatedOqd Long,
cumulatedOtd Long
}
entity ProductionInfo {
averageDailyCost Long,
averageDailyRevenue Long,
managementWorkload Long,
internalWorkload Long,
offshoreWorkload Long
}
relationship OneToOne {
Project to ProjectMetaData
ProjectData to FinancialData
}
relationship OneToMany {
Project to ProjectData
FinancialData to KpiInfo
FinancialData to ProductionInfo
}
Диаграмма выглядит так: диаграмма
Обычно Project имеет уникальный идентификатор проекта и у каждого проекта есть свои ProjectMetaData и ProjectData , после этого для каждого года, в течение которого проект реализуется, у проекта есть FinancialData , и для каждого месяца этого год, есть KpiInfo и ProductionInfo . Поэтому, если я получаю данные за последние 4 года до настоящего времени, это означает, что я создаю около 120+ таблиц для одного проекта, и меня это беспокоит, если приложение. становится достаточно большим, как я упоминал ранее, это будет означать, что впоследствии он не будет очень масштабируемым.
Есть ли какой-либо общий подход для такого рода баз данных, где есть много версий одних и тех же полей?
Заранее спасибо и извините, если я не совсем ясно выразился, я буду рад ответить на любые сомнения относительно моего вопроса