Автор Тема: Инструменты. База данных  (Прочитано 127130 раз)

Оффлайн Валерий Лутошкин

  • Участник
  • *
  • Сообщений: 82
  • Карма 0
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #50 : Мая 22, 2006, 11:07:40 »
Я заранее извиняюсь - я очень редко захожу в этот форум.
По работе с BDE я мало что могу сказать, потому что с борландом уже не работаю очень давно.
LIKE у меня работает легко, правда, не в самом Access'е, а с акцессовскими базами в ASP/Visual Basic. Напрямую в акцессе я тоже не работаю.
Вот, например, живой пример ASP кода моего последнего сайта:
        strSQL = "SELECT song_id, song_name, song_text " _
                & "FROM songs " _
                & "WHERE song_text LIKE '%" & Replace(strSearch, "'", "''") & "%' " _
                & "ORDER BY song_text;"
        Set rstSearch = cnnSearch.Execute(strSQL)

По поводу базы как веб-интерфейса на php - что-то в этом есть, но последующая ее привязка к тому же "Архиву" будет затруднена хотя бы потому, что Архив хранится фактически в одном месте. При этом, опять же, на php я не пишу, предпочитаю asp и вообще платформу MS, поэтому вряд ли чем-то смогу помочь в этой теме. А с другой стороны - при переносе форума на новый хостинг было бы логично разместить и базу на нем же.pLuto38859,8293981481

Оффлайн Валерий Лутошкин

  • Участник
  • *
  • Сообщений: 82
  • Карма 0
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #51 : Мая 22, 2006, 11:31:30 »
Добавление:
Попробовал построить Запрос напрямую в акцессе. Для той же базы, пример для которой приводил выше. В режиме конструктора запросов написал в поле "Условие отбора" для поля базы "Song_text" значение LIKE '%небо%'. Акцесс автоматически исправил его на ALIKE и все заработало. Так что запросы с LIKE в Access'е живут без проблем.
Вот цитата из хелпа от Access (нижеупомянутый режим запроса переключается в "Сервис-Параметры-Таблицы и запросы-Синтаксис для SQL Server"):
Также можно использовать подстановочные знаки в условиях на значение поля. Используемые подстановочные знаки зависят от режима запроса ANSI SQLбазы данных Microsoft Access.
Следующий пример работает в базе данных Microsoft Access, использующей синтаксис Microsoft Jet SQL.
 
Условие на значение поляСообщение об ошибке
Like "K???"Значение должно содержать четыре знака и начинаться с буквы K.
Следующий пример работает в базе данных Microsoft Access, использующей Microsoft SQL Server-совместимый синтаксис (ANSI-92).
 
Условие на значение поляСообщение об ошибке
Alike "K___"Значение должно содержать четыре знака и начинаться с буквы K.

Оффлайн Алексей Рогачев

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 1 755
  • Карма 264
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #52 : Мая 22, 2006, 13:17:57 »
ALIKE?! Ну идиотизм!!! Правда, действительно работает, но додуматься до такого вряд ли кто способен, а мой Access ничего автоматически не исправляет. В общем, мелкомягкие маст дай...

Оффлайн Валерий Лутошкин

  • Участник
  • *
  • Сообщений: 82
  • Карма 0
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #53 : Мая 26, 2006, 14:01:24 »
Sourceress, достаточно пяти минут и поиска в хелпе по слову Like, чтобы вопрос снимался сразу и навсегда. "Если ничего не помогает - прочтите, наконец, инструкцию" (С)
А в акцессе есть режим совместимости и с Like - если используется Microsoft Jet SQL синтаксис. Я же не зря привел кусок хелпа.
Майкрософт обвинять во всем на свете модно, но не очень-то продуктивно.

Оффлайн Алексей Рогачев

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 1 755
  • Карма 264
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #54 : Мая 26, 2006, 14:56:15 »
Я не настолько глуп, как тебе кажется, и файл справки к Access'у изучил первым делом. Все, что там написано по обсуждаемому вопросу, оказалось полной липой.

Оффлайн Валерий Лутошкин

  • Участник
  • *
  • Сообщений: 82
  • Карма 0
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #55 : Мая 27, 2006, 11:43:09 »
Видимо, у тебя какой-то очень особенный Access. Я пользуюсь Microsoft Access 2003 из комплекта Microsoft Office 2003 Rus. Все, процитированное мной из хелпа там работает именно так, как написано.
А что оказалось липой? У тебя не работает ALIKE? Или у тебя не работает LIKE после переключения синтаксиса в MS JET? Что из этого липа?pLuto38864,853900463

Оффлайн Алексей Рогачев

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 1 755
  • Карма 264
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #56 : Мая 27, 2006, 17:56:18 »
У меня тоже Access 2003. В файле помощи написано так, как ты мне советовал в первый раз: LIKE '%...%'. Я так и пробовал сделать. Не работало. Затем ты посоветовал написать ALIKE вместо LIKE, и все пришло в норму. А программа автоматически не исправляет LIKE на ALIKE. Вот, собственно, в этом и заключается основная проблема. Точнее, заключалась, потому что теперь для построения основных типов нужных мне запросов я использую собственную программку - несложная, зато делал я ее под себя, с учетом своих потребностей. Да и с оператором LIKE там проблем нет

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #57 : Июля 08, 2006, 10:42:58 »
Я тут купил несколько книжек по "Аксессу", из которых узнал, что схемы баз данных он сам рисует на основе построенных таблиц и установленных связей. То есть надо просто делать таблицы, проводить связи - и схема будет.
Так что мне проще будет составить предполагаемую базу данных, чтобы уже конкретно её обсуждать.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Кристобаль Хунта

  • Опытный участник
  • **
  • Сообщений: 761
  • Карма 0
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #58 : Июля 09, 2006, 14:38:23 »
А я все делаю в Экселе. Не люблю все усложнять, хотя простенькие базы данных в Акцессе делал, но удовольствия от этого не получал.
Обычно делаю так: столбцы "Гонщик", "Страна", "Шасси-модель-мотор", "Команда".
Потом столбцы разделенные на две части: стартовая позиция и результат.
Финишные позиции выделяются толщиной линий и цветом.Кристобаль Хунта38907,9748842593
--------------------------
http://www.f1cab.com/

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #59 : Июля 19, 2006, 08:27:39 »
Вот схема базы данных гонок.

В ней в центре помещены те таблицы, ради которых всё это и задумывалось: соревнований и гонок. Остальные таблицы - первичные, служащие источником стандартных данных.
Я могу использовать неправильную терминологию, но буду учиться, чтобы выражаться правильно.
Кому интересно или кто разбирается, гляньте, пожалуйста и выскажите своё мнение.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Джен

  • Участник
  • *
  • Сообщений: 61
  • Карма 0
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #60 : Июля 19, 2006, 10:36:48 »
 у кого как, а мне видно очень... в общем, ничего не видно :) 

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #61 : Июля 19, 2006, 10:38:24 »
В каком смысле?
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Джен

  • Участник
  • *
  • Сообщений: 61
  • Карма 0
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #62 : Июля 19, 2006, 10:40:54 »
 ну, я кликаю на превью, чтобы посмотреть картинку в нормальном, так скажем, виде, она увеличивается, но буквы все сливаются, ничего прочитать не могу - не знаю, в чем трабл.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #63 : Июля 19, 2006, 10:57:11 »
Я думаю, что картинка уменьшается в браузере, подстраиваясь под размер экрана. Её надо сохранить на компьютере и открыть в графическом просмотрщике.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #64 : Июля 20, 2006, 02:29:40 »
В принципе, на этапе создания таблиц всё оказалось подозрительно несложно, так что я подумываю о расширении всей базы данных до "идеального" варианта, включающего в себя и результаты гонок, и параметры автомобилей, и информацию о гонщиках. Всё это можно заложить заранее, а потом только заполнять.
Единственная опасность - чего-то не предусмотреть и затем потерять часть информации при преобразованиях.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Александр Кульчицкий

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 3 517
  • Карма 759
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #65 : Июля 20, 2006, 05:03:05 »
Цитата: Владимир Коваленко
В принципе, на этапе создания таблиц всё оказалось подозрительно несложно, так что я подумываю о расширении всей базы данных до "идеального" варианта, включающего в себя и результаты гонок, и параметры автомобилей, и информацию о гонщиках. Всё это можно заложить заранее, а потом только заполнять.
Единственная опасность - чего-то не предусмотреть и затем потерять часть информации при преобразованиях.

А я, дурак, думал над тем, как все сделать попроще, а для тебя, оказывается, это "подозрительно несложно" и ты хочешь включить еще и результаты гонок.
Я же всерьез подумывал, как убедить тебя отказаться от двухуровневой базы данных (соревнование - гонка) и перейти на одноуровневый (гонка) сделав соревнование одним из параметров гонки. Кроме того, для глобальной базы данных по всем гонкам думал над тем, от каких из показателей на этом этапе можно отказаться. Абсолютно все показатели со статистикой и прочим полагал возможным ввести исключительно в отдельные БД по группам гонок.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #66 : Июля 20, 2006, 06:37:02 »
Я не знаю, насколько ты знаком с принципами реляционных баз данных (я сам, к слову, только разбираюсь), но удобство такой БД заключается в том, что огромные объёмы информации можно хранить в одном месте, не заботясь о красоте и удобстве их использования. Структрура отдельных таблиц может быть какой угодно, а отображение нужной информации определяется запросами. Один раз сделал запрос - и по нему будет выводиться только та информация, которая нужна.
В обычных таблицах для этого надо создавать отдельные таблицы с повторением данных.
В той БД, которую я хотел бы создать, нужно заложить максимум необходимых данных, а потом постепенно заполнять её.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Александр Кульчицкий

  • Историк
  • Опытный участник
  • ****
  • Сообщений: 3 517
  • Карма 759
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #67 : Июля 20, 2006, 08:08:31 »
Цитата: Владимир Коваленко
Я не знаю, насколько ты знаком с принципами реляционных баз данных (я сам, к слову, только разбираюсь), но удобство такой БД заключается в том, что огромные объёмы информации можно хранить в одном месте, не заботясь о красоте и удобстве их использования. Структрура отдельных таблиц может быть какой угодно, а отображение нужной информации определяется запросами. Один раз сделал запрос - и по нему будет выводиться только та информация, которая нужна.
В обычных таблицах для этого надо создавать отдельные таблицы с повторением данных.
В той БД, которую я хотел бы создать, нужно заложить максимум необходимых данных, а потом постепенно заполнять её.

Володя, дело совсем не в красоте, просто чем сложнее система, тем сложнее предусмотреть в ней все возможные варианты параметров. Например, в чистых гонках результат определяется временем, затрачиваемым на преодоление дистанции, и все. В старых ралли результат определялся штрафными минутами, результатами дополнительных состязаний и еще черт знает чем. Были соревнования, в которых результат определялся баллами. Кроме привычных нам соревнований к спортивным мероприятиям относились раньше и конкурсы элегантности и соревнования "караванов" со своими правилами. И как все это объединить в одной базе данных? А ведь кроме окончательных результатов может захотется запихнуть в статистику результаты квалификаций со всех их разнообразием. Поэтому, для начала, я предлагаю о результатах просто не думать - ведь специальная база данных может существовать и в таком виде.
Относительно теории баз данных и терминологии, ты прав, с ними я практически не знаком, но на практике немного приходилось такими вещами заниматься.
 

Оффлайн Владимир

  • Опытный участник
  • **
  • Сообщений: 3 780
  • Карма 1110
  • ЧМ Ф-1: 1950-по настоящее время!
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #68 : Июля 21, 2006, 14:48:34 »
 
Цитата: Владимир Коваленко
Единственная опасность - чего-то не предусмотреть и затем потерять часть информации при преобразованиях.
Да. Это основная проблема при разработке структуры базы данных.
Если Вы её сформируете, затем реализуете программно и заполните данными, а потом появится что-либо новое или что-то  не будет учтено, то изменить  структуру базы данных будет практически невозможно. Очень трудное это дело.

Вот сложный случай: в 1950-ых годах гонщики менялись машинами и на финише делили очки (иногда и по три гонщика участвовало в дележке очков за одно место, я уж не говорю про дележ очков за быстрый круг). Таким образом, у одного пилота - несколько машин, у одной машины - несколько пилотов.
И нормально реализовать это сложновато. До сих пор не решил эту проблему.
Также менялись системы начисления очков и системы квалификаций.
В гонках иногда начислялось очков в два раза меньше чем обычно
Все это также необходимо учитывать.
gp238919,9825810185
Из детского сада. И это замечательно! ЧМ Ф-1-это реальность!
С некоторых - как гость на данном  форуме. Чем-то пригожусь еще в плане книг. По заказам литературы пишите через почту! 1000-ый Гран-при в истории ЧМ Ф-1 -рубеж!

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #69 : Июля 24, 2006, 08:51:56 »
Насчёт результатов. В традиционной трактовке истории не используется такое явление, как заявочный список. Между тем, это очень интересная форма отображения статистики. Если брать за основу именно заявочные списки, то списки результатов будут содержать следующие колонки: номер, заявитель, марка и модель автомобиля, заявочное название, номер шасси, двигатель, заводской номер двигателя, гонщик, результаты в предварительных заездах и гонках, очки (если есть). Уточню, что я ориентируюсь не на "Формулу-1", а на автоспорт в целом до шестидесятых годов - тогда были несколько иные порядки.
Вот вышеописанная схема справедлива для жёсткой связки гонщзика и автомобиля. В тех случаях, когда происходили какие-то замены, делается отдельная строчка с полным описанием конкретной комбинации. Вопрос только в том, как оформить в привычный вид несколько строчек, описывающих замены. Подумаю.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #70 : Августа 07, 2006, 05:18:11 »
Я выкроил немного времени и подумал над доработкой планируемой БД. Я не трогал уже имевшиеся таблицы, а только добавил несколько новых.
Похоже, вырисовывается такая картина. Две основные таблицы - это списки гонок и результаты. Если задуматься, это основное, что требуется от базы данных. Смотришь на список гонок, выбираешь гонку и получаешь полную информацию об участниках и их достижениях.
Необходимость двух разных таблиц для соревнований и гонок вызывает сомнения. В принципе, можно заложить информацию о соревнованиях в таблицу гонок.
Зачем вообще появилась таблица соревнований? В упрощенном подходе к истории автоспорта не рассматриваются соревнования, обычно клубные, состоявшие из нескольких разных гонок в разных классах на разные дистанции разного формата. Это было характерно для Великобритании, а сейчас возрождено в несколько ином качестве на примере, скажем ДТМ, где за один уик-энд проводятся разные гонки под эгидой основной серии.
В традиционной трактовке истории упрощение ситуации производится путём выбора какой-нибудь гонки из программы соревнований, которая считается за главную и затем рассматривается как имеющая тем или иным боком отношение к какой-нибудь "формуле", а остальные становятся гонками поддержки. Например, в гудвудских соревнованиях выбирается гонка в классе "формула-1" и рассматривается главной, потому что всё должно быть притянуто к несуществовавшей серии "Формула-1", а остальные гонки становятся гонками поддержки и игнорируются, хотя в иные годы главными были гонки не в Ф1, а в свободной формуле. Историки ещё удивляются: какая-то левая гонка на абсурдно короткую для "Формулы-1" (фанфары!!!) дистанцию, - а оказывается, что там всё было по-другому.
В общем, разделение на списки соревнований и гонок оказывается удобным для любого рода многозаездных мероприятий, вопрос только в том, что отчасти эти две таблицы пересекаются и повторяют друг друга.
В принципе, можно было бы информацию о соревнованиях отобразить в таблице гонок, только надо разобраться, как можно настраивать отображение таблицы в разных видах, чтобы было как бы две таблицы, а на самом деле информация в них выбиралась из одной и той же таблицы.
Тогда в базе данных будут ДВЕ ГЛАВНЫЕ ТАБЛИЦЫ: гонки и результаты.
А пока что я добавил таблицу "Результаты", которая будет формироваться из первичных таблиц "Гонщики", "Автомобили" и "Заявители". "Гонщиков" я сделал, а до "Автомобилей" и "Заявителей" ещё не добрался.
Поскольку имена гонщиков повторяются, есть смысл сделать первичную таблицу для имён (и названий), в которую помещать вообще все встречающиеся имена собственные с их оригинальным написанием и вариантами перевода.
Эта таблица, по идее, должна быть посвящена исключительно лингвистической стороне дела, то есть надо только перечислить имена и названия, чтобы потом выбирать их для других таблиц. Но состав этой и некоторых других таблиц наталкивает на мысль об объединении таблиц "Названия соревнований", "Названия гонок", "Организаторы", "Санкционеры", "Географические пункты" и "Страны". Везде есть всякие транкрипции, транслитерации и т.д. Может получиться одна большая таблица, в которой каждое название будет характеризоваться по своему виду.
Надо думать.
А пока что вот схема чуть-чуть дополненной БД.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Кристобаль Хунта

  • Опытный участник
  • **
  • Сообщений: 761
  • Карма 0
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #71 : Августа 17, 2006, 10:50:43 »
Вот просмотрел еще раз базу данных. По моему но в ней неучтено, какие результаты гонщик показывал на событии, которые мы называем квалификационными заездами. Между тем для любой базы данных это стартовое поле - немаловажная деталь.
Также нет команд/заявителей.
Еще нужно предусмотреть, как указывать, если шасси и двигатель разных производителей.
В то же время такие показатели как страна, географический пункт, трасса лучше сократить.
Если же говорить о названиях, то дабы лишний раз не ломать копья и голову, лучше оставить написание на родном языке и перевод на русский.
Вот такие у меня, мысли.Кристобаль Хунта38946,8170138889
--------------------------
http://www.f1cab.com/

Оффлайн Александр Амецинский

  • Опытный участник
  • **
  • Сообщений: 162
  • Карма 0
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #72 : Августа 17, 2006, 12:38:20 »
Схема базы для веб-проекта или для личного пользования?

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #73 : Августа 17, 2006, 12:56:37 »
Для личного. Ну, не абсолютно личного - поделюсь с любым желающим. Но для персонального компьютера.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #74 : Сентября 19, 2006, 06:51:39 »
Выбрал свободную минутку и ещё немного поработал над БД. До этого ещё почитал книжки по "Аксессу" для начинающих и порассматривал добытые в разных местах готовые файлы. Кое-что понял, но на этом заострять внимание не буду - это промежуточные ступени.
В результате поубирал все сделанные ранее связи и в каждой таблице сделал поле "Код ...", которое сделал ключевым. Добавил табличку "Тип географического названия"... Ага, неправильно получилось - надо был "Тип географического пункта". Потом переделаю. И ещё надо добавить табличку "Тип имени". Добавлю.
Со связями я ещё буду разбираться, а пока представлю промежуточную схему БД для тех, кому интересно разобраться в идее.

Здесь три таблицы в верхнем ряду - собственно, те, ради которых всё это и замышлялось. На самом деле, возможно, их все можно соединить в одну, но над этим я ещё подумаю.
Все таблицы ниже "поставляют" в основные нужные данные. Судя по книгам, устоявшаяся терминология немного не подходит для нашего случая, потому что обычно главными называют таблицы, из которых берутся записи в таблицы, которые, в частности, в моём случае, являются основными по своему предназначению. А они, в свою очередь, называются подчинёнными.
Правда, есть и ещё один вариант: материнские и дочерние. Можно воспользоваться такой терминологией.
Итак, три верхних таблицы - дочерние по отношению ко всем остальным, потому что они используют поля материнских.
Таблица "Имена и названия" - материнская, в свою очередь, для таблиц всей нижней части схемы. В предыдущем варианте БД я расписывал переводы имён и названий в каждой материнской таблице, где они появлялись, а теперь решил всё это сосредоточить в одной таблице, из которой потом, в случае чего, выбирать нужные данные.
Итак, сверху - основные таблицы по сути и дочерние по терминологии, поля которых составляются из материнских таблиц. Вот, собственно, и объяснение такого количества таблиц.
Скажем, хочу я создать таблицу со списком соревнований и достаточным их описанием. Что мне надо включить в такую таблицу?
Название традиционного или разового соревнования. В прошлом гонки нередко состояли из нескольких равнозначных или разнозначных гонок, и весь этот набор каким-то образом именовался или воспринимался под каким-то обобщающим названием. Скажем, в Гудвуде проводились пасхальные гонки. Нормальное описание многозаездного соревнования. Его надо поместить в таблицу, а поскольку оно проводилось каждый год, оно будет повторяться в БД неоднократно, и его есть смысл брать по коду из специальной материнской таблицы. Для этого служит таблица Названия соревнований.
Соревнование проходило в какой-то день, и для описания этого существуют внутренние возможности программы. Соревнование проходило на какой-то трассе, и её тоже надо упомянуть. Списки трасс помещаются в свою материнскую таблицу, от которой выводится связь в таблицу соревнований.
У соревнования были организатор и иногда санкционер, которых тоже полезно упомянуть, и каждый из которых берётся из своей материнской таблицы.
Точно так же расписываются поля других дочерних таблиц.
Материнские таблицы я сгруппировал по видам. Названия соревнований и Названия гонок; Организаторы и Санкционеры; Классы автомобилей и Категории автомобилей; Гонщики оказались сами по себе; Трассы оказались в одной группе со Странами, Географическими пунктами и Типами географических пунктов.
Имена и названия будут поставлять данные практически для каждой таблицы.
Ну и как, понятней стала идея?
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #75 : Сентября 19, 2006, 07:53:48 »
Я тут обнаружил одну неприятную особенность, связанную со вводом данных. Скажем, я составляю таблицу результатов, где мне надо указать гонщика. Поле "Гонщик" связано с соответствующей материнской таблицей, где перечислены все гонщики, для каждого из которых существует свой уникальный код. Для того, чтобы в данной конкретной записи таблицы результатов появилось нужное имя, я должен указать код гонщика из материнской таблицы. Естественно, я не могу помнить наизусть коды каждого из тысяч гонщиков. Получается, что мне надо вручную открывать таблицу гонщиков, искать в ней нужное имя и затем вручную вводить в таблицу результатов найденный код.
Было бы удобнее, если бы из выбранной ячейки открывалась связанная с этим полем таблица, где можно было бы щёлкнуть на нужном имени, и его код остался бы в нужной ячейке таблицы результатов.
Я не узрел такой возможности. Может, я плохо смотрел?
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Александр Готвянский

  • Опытный участник
  • **
  • Сообщений: 439
  • Карма 34
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #76 : Сентября 19, 2006, 10:21:00 »
Вроде надо просто в таблице с гонщиками скрыть поле с кодами, и тогда автоматом будет выпадать список с фамилиями. Я себе вроде бы так делал свою музыкальную БД.
 
Проверь почтуalgot38979,7966319444

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #77 : Сентября 19, 2006, 11:04:51 »
Почта сегодня вечером почему-то не работает.
Насчёт скрывания поля с кодами я не понял. Я пока только изучаю возможности "Аксесса". Мне важно при заполнении дочерней таблицы не открывать одну за другой все материнские таблицы, а искать нужное значение, скажем, через правый клик с автоматическим выходом на связанную с этим полем материнскую таблицу.
То есть если я заполняю ячейку "Гонщик", удобнее всего будет её выделить, нажать что-нибудь и получить список из материнской таблицы, из которого можно было бы выбрать нужное имя, но в ячейку при этом был бы проставлен код. Вот так.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Александр Готвянский

  • Опытный участник
  • **
  • Сообщений: 439
  • Карма 34
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #78 : Сентября 19, 2006, 11:34:58 »
Это делается не так.
В таблице с фамилиями код генерится автоматом?
Если так, то в таблице "Гонщики" эту колонку с кодом делаешь скрытой. Тогда в таблице результаты при заполнении ячейки "Гонщик" у тебя появится выпадающий список гонщиков. Можно выбрать из него или ввести первые букви имени. Реально подставится код.
 
Я это делал прошлым летом, поэтому плохо помню, но вроде так.
Вот моя база
http://www.is.svitonline.com/algot/My_Music.rar
 
В ней главной таблицей является таблица "Альбомы", а в нее я подставляю исполнителей и годы.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #79 : Сентября 19, 2006, 11:39:32 »
Если автоматом, то это режим "Счётчик". Я так не хочу, потому что хотелось бы, чтобы всё было красиво, и коды автоматически сортировались бы в порядке, соответствующем алфавитному порядку самих имён. Хотя, возможно, это всего лишь предрассудок, связанный с плохим знанием программы и неопытностью в составлении баз данных.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Александр Готвянский

  • Опытный участник
  • **
  • Сообщений: 439
  • Карма 34
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #80 : Сентября 19, 2006, 11:44:28 »
По алфавиту ты их в любой момент отсортируешь.
А этот код можно скрыть и забыть о нем навсегда.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #81 : Сентября 19, 2006, 11:49:23 »
Значит, есть смысл не заботиться о красоте кода? Пусть будет счётчик - и хрен с ним?
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Александр Готвянский

  • Опытный участник
  • **
  • Сообщений: 439
  • Карма 34
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #82 : Сентября 19, 2006, 11:53:15 »
 
Цитата: Владимир Коваленко
Значит, есть смысл не заботиться о красоте кода? Пусть будет счётчик - и хрен с ним?

 
Именно. Открой мою таблицу Artist. В ней список исполнителей в алфавитном порядке. В левом углу списка кликни правой кнопкой и выбери "Отобразить столбцы" и увидишь, что номера не по порядку. А как ты собирался добавлять новых гонщиков?
 
PS Выйди в аську, чтобы мы форум не засоряли.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #83 : Сентября 19, 2006, 12:03:31 »
"Аська" у меня только на работе, и я её включаю только по особой необходимости, а то она отнимает много времени. Но, возможно, я всё-таки поставлю её дома.
Но сейчас у меня другая проблема, из-за которой я не смогу открыть твой файл: "Офис" требует активации, и осталось всего лишь 3 запуска из 50. Замена файлика MCO.DLL ничего не дала, хотя он, возможно, не тот, какой нужен. Так что посмотреть твой файл я смогу тоже на работе.
Интересно, если "Офис" переустановить, проблема исчезнет?
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #84 : Сентября 19, 2006, 12:05:33 »
А, вот и почта заработала. Но твоих писем нет. Адрес - tomskdx@sibmail.com.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Александр Готвянский

  • Опытный участник
  • **
  • Сообщений: 439
  • Карма 34
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #85 : Сентября 19, 2006, 12:05:53 »
А что это за дивный Оффис такой?

Оффлайн Александр Готвянский

  • Опытный участник
  • **
  • Сообщений: 439
  • Карма 34
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #86 : Сентября 19, 2006, 12:08:33 »
Я в нете выложил точно такой же архив, как и в почте.
А отправлял я на RFC.

Оффлайн Александр Готвянский

  • Опытный участник
  • **
  • Сообщений: 439
  • Карма 34
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #87 : Сентября 22, 2006, 21:13:42 »
Ну как продвигаются дела? Интересно просто, нет ли каких-либо новых вопросов.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #88 : Сентября 22, 2006, 23:18:54 »
Продвигаются, толбко дюже некогда было хотя бы пару строчек чиркнуть.
Я всем полям с кодами в таблицах присвоил тип счётчика и выяснил, что связанные поля должны при этом иметь тип числовой. Текстовый я оставил только для кодов стран, потому что думаю, что мне удобнее будет вносить стандартные трёхбуквенные коды типа AUS, RUS, SWE.
Пока не разобрался, как делать то, о чём ты говорил про заполнение при скрытом поле кода, но разберусь.
Зато разобрался в принципе, по которому существуют плюсики в самой левой колонке таблицы. Если нажать на плюсик, открывается таблица, и её смысл вот в чём. Если в дочерней таблице результатов гонок указаны несколько автомобилей "Мазерати-250Ф", при нажатии плюсика напротив этого автомобиля в таблице материнской (автомобилей)откроется список всех участников на этой модели. Иногда это может быть полезным, но пока что меня волнует не просмотр, а заполнение таблиц.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Александр Готвянский

  • Опытный участник
  • **
  • Сообщений: 439
  • Карма 34
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #89 : Сентября 24, 2006, 17:23:07 »
 
Цитата: Владимир Коваленко

Пока не разобрался, как делать то, о чём ты говорил про заполнение при скрытом поле кода, но разберусь.
 

 
Открой мою БД (ссылку см. выше) и посмотри как у меня сделано.
В твоем случае открываешь таблицу "Гонщики", выделяешь столбец с кодом и выбираешь "Скрыть столбец". И все.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #90 : Сентября 25, 2006, 06:59:32 »
Да я не про это, а про то, как эту таблицу потом использовать для заполнения дочерней.
То есть мне надо составить таблицу с результатами некой гонки. Чтобы вставить в неё код гонщика Иванова, мне надо открывать таблицу гонщиков, искать Иванова и что-то делать, чтобы его скрытый код попал в заполняемую таблицу?
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Александр Готвянский

  • Опытный участник
  • **
  • Сообщений: 439
  • Карма 34
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #91 : Сентября 25, 2006, 09:08:04 »
Нет, в таблице гонок при клике на поле "гонщик" у тебя появится выпадающий список фамилий. Если не скрывать поле "код" в списке гонщиков, то тогда будет выпадающий список кодов гонщиков.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #92 : Сентября 26, 2006, 07:51:19 »
Я попробую, но до сих пор так не получалось. Возможно, у меня связи были неправильно установлены.
Пока что вот схема очередной версии БД:

Что мы имеем? Вверху - три таблицы, ради которых всё это затевается. Внизу - их составляющие. Пока это всё ещё выглядит криво, но я ещё разберу каждую из этих трёх таблиц. Идея "разбирательства" проста: подтвердить необходимость каждого поля и чётко проследить его происхождение из материнских таблиц.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #93 : Сентября 27, 2006, 07:49:50 »
Если кто-нибудь подтвердит моё предположение, буду очень рад.
Я начал конструировать три дочерние таблицы, исходя из того, какие в них нужны столбцы для использования. Скажем, если мне при использовании таблицы гонок нужно знать страну, в которой проходила гонка, и трассу, то оба этих столбца должны быть в таблице.
Но теперь я начинаю соображать, что эти самые таблицы не предназначены для использования - они предназначены для заполнения. Используется база данных посредством форм и запросов. Это ведёт к той мысли, что если в дочерней таблице указать на код трассы, всегда будет возможность увидеть в форме или запросе все данные из всех материнских таблиц. Если страна уже указана с таблице трасс, то для неё отдельное поле создавать не надо.
В сильно упрощенном варианте таблица гонок может содержать такие поля: дата, название, трасса. Для названия гонки и трассы указываются коды. А в той таблице, которая предназначена для непосредственной работы и которая формируется путём запроса, полей будет больше, потому что все они вызываются из материнских таблиц названий гонок и трасс: дата, название гонки, название гонки в оригинале, страна, трасса, длина круга.
Я ещё не изучал правила создания запросов, но думаю, что найду там подтверждение этих предположений.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #94 : Сентября 27, 2006, 08:23:30 »
Ещё одна проблема. Если гонка или соревнование проводилось в одном определённом классе, достаточно указать код класса. А если классов было несколько? Это особенно актуально для соревнований. Если в программе соревнования пять гонок, и каждая проводится в своём классе, то в поле классов таблицы соревнований было бы хорошо иметь перечисление всех классов.
Может ли программа автоматически поместить в одну ячейку сразу несколько классов?
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #95 : Ноября 12, 2006, 01:12:52 »
В принципе, можно было бы уже хоть сейчас начать вносить в таблицы хоть какие-то данные, но мешает неопределённость с хранением имён собственных.
Тут две проблемы.
1. Общая. На данном этапе задумано, что ВСЕ имена собственные (имена, фамилии, географические и прочие названия) будут содержаться в одной таблице,в которой будут приводиться как оригинальные написания, так и различные варианты переводов, а также будет указываться тип имени: имя фамилия, название автоспроизводителя, название команды, название трассы, географическое название и т.п. То есть это должна быть чисто словарная таблица: слово - перевод, слово - перевод, слово - перевод. Можно даже не проводить классификацию по типам, потому что всё равно будут отдельные таблицы для гонщиков, трасс, марок, команд и т.д. И изначально было задумано, что в каждой из этих таблиц будет информация о переводе имени. Раз суть релционной базы данных состоит в уменьшении количества повторяющихся данных и полей, я и счёл, что для переводов названий можно сделать отдельную таблицу, чтобы не плодить одинаковые поля и иногда одинаковые записи в специализированных таблицах. Но вот что-то сейчас ещё меня беспокоит. Я даже не могу сказать, что, но почему-то кажется, что в этом решении есть какие-то существенные недостатки.
2. Имена и фамилии гонщиков. Разнести их по разным полям? То есть один столбец - имя, другой - фамилия? В принципе, это было бы удобно для сортировки. Вопрос опять-таки в том, можно ли при необходимости объединить две записи в одну. Пока ещё не искал ответ на этот вопрос.
Но, в приципе, пока писал это, обдумал, и мне показалось, что так всё можно и оставить.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Александр Амецинский

  • Опытный участник
  • **
  • Сообщений: 162
  • Карма 0
    • Просмотр профиля
Re: Инструменты. База данных
« Ответ #96 : Ноября 12, 2006, 07:32:09 »
Цитата: Владимир Коваленко
2. Имена и фамилии гонщиков. Разнести их по разным полям? То есть один столбец - имя, другой - фамилия? В принципе, это было бы удобно для сортировки. Вопрос опять-таки в том, можно ли при необходимости объединить две записи в одну. Пока ещё не искал ответ на этот вопрос.
можно склеить две и более записи в одну, указав соответствующие поля определенной команде...
Помимо имени и фамилии можно создать еще поля для псевдонимов, прозвищ и сокращенных вариантов имени...

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #97 : Ноября 12, 2006, 10:56:53 »
Да, всё это нужно будет сделать, но я так понимаю, что такие поля всегда при необходимости можно безболезненно для имеющейся информации добавлять в процессе заполнения БД.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #98 : Декабря 17, 2006, 12:17:41 »
Вот текущий вариант разрабатываемой базы данных: http://disk.tom.ru/257385.
Откройте, пожалуйста, таблицу "Имена и названия" и попробуйтие добавить запись. Потребуется указать коды в полях "Тип имени" и "Язык". Чтобы это сделать вручную, надо открывать эти таблицы, находить в них значение счётчика для нужного поля и выставлять его в таблице имён. А как сделать так, чтобы перейти к этим таблицам непосредственно от заполняемых ячеек?
Это та самая ситуация, которая обсуждалась выше на этой странице, но я ничего подобного тому, что объяснял Саша Готвянский, не вижу. Что-то здесь не так.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.

Оффлайн Владимир Коваленко

  • Администратор
  • Опытный участник
  • *****
  • Сообщений: 22 592
  • Карма 2118
    • Просмотр профиля
    • История автоспорта
Re: Инструменты. База данных
« Ответ #99 : Декабря 18, 2006, 01:33:45 »
Цитата: pLuto
Только покопавшись в ней, именно по гонщикам я нашел некоторые непонятности. У гонщика поле "имя гонщика" текстовое, а при этом есть отдельный справочник "имена и названия", в котором имена уже структурируются. Если хочется, чтобы эти таблицы были связаны - придется менять структуру и имя/фамилию любого гонщика сначала заносить в справочник, а потом уже из справочника выбирать при заполнении таблицы "гонщики".

Собственно, так и было задумано, и у меня до сих пор остаются сомнения, насколько это оптимальное решение. Альтернатива - каждое имя указывать индивидуально в соответствующих таблицах, где и расписывать переводы. Недостаток альтернативного варианта - одни и те же имена могут дублироваться в разных таблицах. И ещё тогда для расписывания переводов длинных имён гонщиков потребуется изощрённая структура полей.
Цитата: pLuto
... для того, чтобы выбирать значения из связанной таблицы, необходимо использовать инструмент "Подстановка". Когда редактируешь поле - обрати внимание, что снизу есть еще одна закладка с таким названием и попробуй посмотреть хелп по ней, там всё очень подробно расписано.

Спасибо, я посмотрю.
Если кто-то чего-то не может, не умеет или не понимает, он доказывает, что это никому не нужно и даже вредно.