Форум истории автоспорта > Исследовательская лаборатория
Инструменты. База данных
Алексей Рогачев:
1. Как можно ввести одинаковые значения в ключевое поле? Access тут же выдаст сообщение, что значения поля повторяются.
2. Если бы все чемпионаты СССР состояли из одной гонки, таблица не была бы нужна, но ведь чемпионаты-то были как многоэтапные, так и одноэтапные...
3. Можно подробнее? Что такое запрос по содержанию и как он строится в Access?
4. Форм у меня в БД нет - возни много, а толку мало. Все равно они мне не нужны (по крайней мере, на данный момент, когда база данных еще очень далека от завершения).
5. Все верно, лучше минимум данных, остальное вычисляется автоматически. Но я уже писал выше, что те данные, с которыми я работаю, не дают мне возможности автоматизировать вычисления.Sourceress38733,952650463
Валерий Лутошкин:
--- Цитата: Sourceress --- Мой шестизначный ID устроен так, что ограничения, в него заложенные, ни в коей мере мешать не могут. Суди сам: годы, которые будут представлены в БД, целиком относятся к XX веку, значит, двух первых цифр вполне хватит. Больше двух с небольшим десятков соревнований за сезон в СССР не проводилось никогда, значит, тоже достаточно двух цифр. И, наконец, каждое из этих соревнований включало в себя максимум десять гонок - еще две цифры. С этим как раз все в порядке. Счетчики в качестве ключа я стараюсь, наоборот, не использовать именно потому, что значение не несет никакого смысла и лишь увеличивает объем базы данных впустую. А если бы я в таблице "Гонки" поставил счетчик в качестве ключа, запрос на результаты гонки вообще стал бы кошмаром, потому что пришлось бы набирать в запросе полное длинное название гонки, со всеми запятыми и кавычками. Идея составного значимого ключа, который бы служил основой для запросов, пришла мне в голову слишком поздно...
--- Конец цитаты ---
Я о чем и говорю - для текущих задач этого индекса хватает, но если тебе когда-нибудь захочется расширить базу - да тривиально добавить туда 19 или 21 век - то ты уже натыкаешься на концептуальную невозможность этого. Если ты уверен на 100%, что никогда не захочешь расширить свою базу и эта база никогда не будет включена в чужие как подмножество - тогда конечно. Но такая уверенность - штука крайне редкая.
А про запрос на результат гонки - не понял. Ты же знаешь дату ее проведения, почему ты не делаешь запрос по дате? Я уж не говорю про ключевое слово NEAR, которое позволяет искать по части поля (например, по части названия).
В современных условиях, когда размер - далеко не самый определяющий параметр, экономить на спичках (т.е. на счетчиках) я бы таки не стал. Хотя каждому свое, конечно.
Алексей Рогачев:
Раз меня интересует исключительно советский автоспорт, то шестизначный индекс вполне удовлетворяет этим условиям. Дореволюционными и нынешними российскими гонками заниматься не планирую - это стопроцентно. Первыми давно уже занимается другой человек, ну а на нынешний автоспорт и без меня знатоки найдутся.
Запрос на результаты гонки подразумевает, что мне надо найти их, зная только год и название гонки. Не могу же я знать даты всех проведенных гонок! А с использованием NEAR вышел некоторый облом. Какой там синтаксис выражения с его использованием?
Валерий Лутошкин:
Сорри, про NEAR я прогнал - потерял мысль. Конечно же, имелся в виду оператор LIKE.
WHERE (DATE BETWEEN 19550101 AND 19551231) AND (NAME LIKE '%КУБОК%')
выдаст все гонки 1955 года, в названии которых присутствует слово КУБОК.
Алексей Рогачев:
Насколько я понимаю, это часть запроса, составленного на SQL... А конструктор запросов в Access подобное выражение поймет?
Навигация
Перейти к полной версии