Я начал работать над сайтом, созданным другим домом разработчиков.Структура базы данных была создана с использованием подхода Entity Framework, основанного на коде.В коде C # мы имеем что-то вроде:
public class MainBusinessObject
{
...
public SubBusinessObject { get; set; }
}
public abstract class SubBusinessObject
{
...
}
public class SubBusinessObjectTypeOne : SubBusinessObject
{
....
}
public class SubBusinessObjectTypeTwo : SubBusinessObject
{
...
}
...
Существует 6 SubBusinessObject
типов.У самого маленького есть одно свойство, у самого большого около 50. Абстрактный класс SubBusinessObject
определяет еще 17 свойств.У MainBusinessObject
около 35.
Какие сущности реального мира они представляют?Если MainBusinessObject
содержит данные, скажем, для FruitForSale
, то SubBusinessObject
будет представлять Fruit
, а SubBusinessObjectTypeOne
может быть Apple
, SubBusinessObjectTypeTwo
может быть Orange
и т. Д.
Оба класса MainBusinessObject
и SubBusinessObject
связаны с другими объектами базы данных (такими как источник и расположение элементов).Все эти объекты отображаются непосредственно в таблицы SQL Server.
В зависимости от этой конструкции запросы, работающие с MainBusinessObject
, выполняются медленно.Например, для извлечения данных за один MainBusinessObject
требуется около полсекунды (и почти 5 секунд при первом запуске).Я попытался сделать несколько звонков, но в итоге производительность примерно одинакова.Сайт в целом страдает от низкой производительности, и это ключевая область.
Обратите внимание, что я не администратор баз данных, я просто разработчик (и мы все знаем, насколько хорошо разработчики проектируют базы данных ...).Однако дизайн стола кажется мне слишком запутанным, хотя я вполне могу ошибаться.Будет ли объединение этих таблиц в одну таблицу считаться плохой практикой?Буду очень признателен за любые советы по решению подобных проблем.