Я пытаюсь подумать о дизайне для какой-нибудь гибридной базы данных по электронной торговле / автомобилю.
Все хорошо, но одна проблема, которую мне не удается решить, или, точнее сказать, - решена,но может быть лучше, чем это?
У меня есть категории, которые не имеют одинаковые свойства.Автомобили имеют свои марки автомобилей и модели автомобилей, соответствующие этой марке.Но у запчастей и некоторых других категорий для продажи есть Марка, но Пользователь при добавлении поста будет печатать Модель.В некоторых категориях есть Год, Драйв ... Но другие имеют свои совершенно разные свойства.
Все, что я хочу сказать - категории имеют разные свойства.Публикация будет доступна для поиска по категориям.
Когда пользователь выбирает автомобили - открывается форма поиска с маркой, моделью, годом, автомобилем ... Но другие категории предоставляют другие свойства для поиска.
Таблица сообщений - это отдельная запись (автомобиль, деталь, продукт ...). Она сохранит общие свойства для каждой категории.
Таблица Post_Value - это значение свойства
Таблица возможных_значений - это все возможные значения для этого свойства, если оно есть.Подобно свойству «Make», в котором будут храниться возможные значения Audi, BMW, Renault ...
Таблица типов ввода - Сохранит тип ввода, используемый для этого свойства (текст, раскрывающийся список, флажок, Radio ...) для Front End, используется для динамического добавления свойств в форму при добавлении пользователем сообщения.
Я думал о чем-то вроде этого.Но «проблема» в том, что каждое свойство будет храниться в типе varchar.А для 100 сообщений с 40 свойствами таблица будет заполнена 4000 строками.
Это плохо для поиска - я получу список свойств, и мне нужно сравнить этот список со списком свойств для каждого сообщения.И каждый элемент из списка запросов должен соответствовать элементам из списка свойств из таблицы Post_Value.
Я буду использовать Entity Framework с предикатами для этого, чтобы сопоставить все элементы со всеми другими элементами списка.Я буду индексировать значение и имя свойства в таблице Property и Post_Value.
Но скорость этого дизайна действительно беспокоит меня.Любое другое предложение?