2014-12-01 3 views
-3

У меня есть страница, которая позволяет пользователю публиковать свои объявления.Структура таблицы в базе данных

  1. Будет страница, где мне нужно получить все категории.
  2. Будет страница, где я выбираю каждую категорию.

Что я сбиваю с толку: какой из них лучше, если будет много (около 20k +) данных.

- Вставить данные в каждую категорию и главную таблицу ?.

* Причина, по которой мне нужно "post_ads_main". Я могу использовать соединение, когда хочу получать данные, но у меня нет идеи заказать «ProductId» при публикации объявлений с пользователей.

TABLE : post_ads_main 
ProductID  |Category |AdsDate 
1    |Tools  |14545454 
2    |cars  |14454545 

TABLE : post_ads_tools 
ProductID  |Category |AdsDate 
1    |Tools  |14545454 

TABLE : post_ads_cars 
ProductID  |Category |AdsDate 
2    |cars  |14454545 

- одна таблица с индексом достаточно?

TABLE : post_ads_main 
ProductID  |Category(catergory_index) |AdsDate 
1    |Tools      |14545454 
2    |cars      |14454545 

*where catergory have index. 

лучше подход очень ценится.

+0

уточните теги, sql-сервер или mysql? выберите один пожалуйста. – Tanner

ответ

0

Использование на столе для всех ваших данных. 20K + не так много для сервера MySQL. Если у вас есть подходящие индексы, все будет в порядке до нескольких миллионов строк.

Если вы разделите свои данные на несколько таблиц, вам будет очень сложно создавать отчеты и другие агрегации по нескольким категориям. И вы можете получить избыточные данные, приводящие к поврежденным или некогерентным данным в будущем.

Смежные вопросы