
1. Вопрос по Primary Key. У меня в проекте используется куча небольших "вспомогательных" таблиц. Например при каком-то действии с таблицей, ну пусть будет Customers в специальную таблицу CustEvent записывается всего два поля - CustomerID (Integer) и EvenTime (TimeStamp) чтобы потом отследить Event'ы данного Customer'а, если таковые имели место. Так вот, в подобных таблицах я обхожусь вообще без Primary Key. Правильно ли это? Даст ли введение уникального столбца CustEventID Integer Primary Key мне что-то? Второй вопрос по индексам. Нужно ли создавать индекс по CustomerID если в дальнейшем я буду делать выборку из какой-то большой таблицы и этой CustEvent по CustomerID? При том, что CustEvent заведомо небольшая (максимум сотни записей) или в этом случае индекс зря будет жрать свой хлеб (то есть дисковое пространство и память)?
2. Далее про индексы. Если есть таблицы Customer и Orders, причём в обеих есть CustomerID и периодически запрашивается список всех покупок данного клиента, насколько я понимаю, необходимо для этих таблиц создать индексы по CustomerID и в этом случае работать должно всё гораздо быстрее (особенно если таблицы достаточно большие) по сравнению со скоростью выполнения без индексов?
И вообще может посоветуете хорошую подробную статью(и) по данным вопросам? Чем подробнее тем лучше... Заранее спасибо.