powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите плииз найти ошибки проектирования...
31 сообщений из 31, показаны все 2 страниц
Помогите плииз найти ошибки проектирования...
    #33601503
sevena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кратко введу в курс дела... :)
Есть событие – цунами. Таблица TsunamiTable описывает различные цунами. Есть данные о разрушениях от цунами, они хранятся в таблице DamageTable; данные о высотах цунами, они хранятся в HeightTable; данные об экономических потерях, они хранятся в LossTable, фото данные, они хранятся в PhotoTable, текстовые описания, они хранятся в TextTable. Причем между ними реализуется связь “многие к одному”, то есть могут быть различные данные для одного конкретного цунами. Существуют также публикации (в журналах, газетах и тд и тп) – таблица BiblioTable, и международные агентства – таблица AgencyTable, которые предоставляют какую то стандартную информацию о произошедшем цунами. Различные агентства (AgencyTable) могут предоставлять различную информацию о конкретном цунами, что и реализовано с помощью переходной таблицы AddInfoTable. Аналогично в различных публикациях (BiblioTable) могут упоминаться различные цунами, что и реализовано с помощью переходной таблицы BiblioLinksTable. ID_Add, ID_Loss, ID_Dam – ссылки на наиболее достоверную информацию о цунами в таблицах AddInfoTable, LossTable, DamageTable. В таблицах есть различные поля (i_Pi, FAT, I, m и тд и тп) и ссылки на публикации в которых упоминаются эти данные (Ri_Pi, RFAT, RI, Rm и тд и тп). То есть RI является как бы внешним ключом к BiblioTable.ID. Причем как видно из схемы – связи для ссылок в виде внешних ключей не реализованы.
Поставлена задача об оптимизации структуры базы данных. Как на ваш взгляд есть ли какие-то серьезные недостатки проектирования у текущей структуры?
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33601517
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БЫть может я не в курсе предметной области,но разве сущность Цунами и Высота цунами не в 1:1?Высота, по-моему,это атрибут.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33601533
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, а вообще какова цель этой базы данных?... Какие запросы по ней будут проходить?

Честно говоря когда в каждой таблице светится ID - хочется автору снять штаны и отшлёпать. Такой ощущение что автор думает что если по каждой таблице сделал простой ПК - то довел все отношения до 3НФ. Я такое проектирование назвал бы бездарным.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33601534
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное,текстовые описания тоже атрибут. К повреждениям и потерям я бы добавил ссылку на таблицу Место (наверное надо внести.,чтобы было ясно,где оно произошло)
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33601539
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и вообще странно:все-таки в таблицах повреждений есть ссылка на цунами или нет?Или в Цунами ссылки на них. Сделайте более ясными названия атрибутов.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33601835
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShtockБЫть может я не в курсе предметной области,но разве сущность Цунами и Высота цунами не в 1:1?Высота, по-моему,это атрибут.гыгыгы. вот я хоть и чел необразованный, но представляю, что одна и та же цунама в разных реионах и в разных местах этих регионов может иметь разную высоту. Вот токо табличку регионов/областей для некоторых (видимо большинства) применений возможно желательно вынести в отдельную сущность-дереце.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33602014
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sevena
Каких-то принципиальных недостатков у этой структуры я не вижу. Единственно, напрашивается выделение географического справочника или справочников по AreaName, RegionName.

Кроме этого, я бы уделил внимание названиям таблиц и полей. В частности повторять в имени каждой таблицы слово Table вряд ли оправданно.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33602023
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4321: Так как непонятно,для чего БД (курсовик или реально нужная база),то я иду по пути наибольшего упрощения, так что постарайтесь обойдусь без "гы-гы-лол" и прочее А про регионы вроде бы
ShtockНаверное,текстовые описания тоже атрибут. К повреждениям и потерям я бы добавил ссылку на таблицу Место (наверное надо внести.,чтобы было ясно,где оно произошло) писалось.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33602547
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shtock4321: Так как...,блаблабласмотрим глазом в схему, видим, что в таблице высот одним из атрибутов является место (более точно - 2 атрибута - AreaName, RegionName), понимаем, что высота относится к месту, а не просто к цунаме, и идем со своими упрощениями (как и обидками на "гыгыгы") лесом. желательно тихо. Такие дела.
как-то так.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33602682
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эх,люди,где же понимание юмора...

P.S. Даже гениям свойственно ошибаться
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33602737
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверно, вот этот кусок вызвал желание посоветоваться
авторID_Add, ID_Loss, ID_Dam – ссылки на наиболее достоверную информацию о цунами в таблицах AddInfoTable, LossTable, DamageTable. В таблицах есть различные поля (i_Pi, FAT, I, m и тд и тп) и ссылки на публикации в которых упоминаются эти данные (Ri_Pi, RFAT, RI, Rm и тд и тп). То есть RI является как бы внешним ключом к BiblioTable.ID. Причем как видно из схемы – связи для ссылок в виде внешних ключей не реализованы. Действительно не понятно, почему ID_Add, ID_Loss, ID_Dam не обявлены как внешние ключи.
И как ссылки на публикации соотносятся с BiblioLinksTable, должна ли BiblioLinksTable являться супермножеством всех остальных RI, связанных с цунами. Как вариант - пара (MainID,RIxxx) - ссылка на BiblioLinksTable(MainID,BiblioID) - конечно если это действительно UNIQUE.

Общее замечание - объявите предметные уникальные ключи либо явно напишите схемы величин. Типа
Измерение высоты: (цунами, место, время, кто мерял, чем мерял).

Высота: (цунами, место, время) - принятая высота на основании анализа Измерений

Иначе мы Вам насоветуем...:)
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33602744
sevena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 gardenman: Запросы всякие разные - сортировка, поиск , удаление и вставка и тд и тп.

2 Shtock : Высоты это показания датчиков которые находятся в различных реионах и тд и тп.
Но про текстовое описание верно подметили :)
Место вводить не надо так как оно есть в таблице цунами TsunamiTable.
Сорри упущение - ссылка на цунами в различных таблицах это MainID.

2 softwarer : Насчет имен все верно - предыдущий разработчик в этом ошибся :)

2 4321 :
Еще может какие нить критические замечания?
Справочники по Area и Region - эт стопудово верно! :)

Если еще есть вопросы то задавайте ! С радостью отвечу.
Спасибо всем за текущие замечания
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33602778
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про оптимизацию.
Напрашивается объединение всех файлов - тескты, фото, схемы и др. в единую таблицу. Атрибуты - описание, тип, дата, файл.
Наоборот, множественные поля Authors, KeyWords могут съесть производительность при поиске. Возможно, достойны отдельных кросс-таблиц для индексирования.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33602894
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sevena
2 4321 :
Справочники по Area и Region - эт стопудово верно! :)
таки нет.таки не "справочники", а "справочник".
Географический справочник древовидной структуры. Ибо место может быть указано с произвольной точностью внутри некоторого региона (расположенного внутри некоего супер-региона).
И опять таки одного идентифекатора места вполне достаточно (он уже сам сошлется на субрегион, регион и т.п. вверх по дереву).
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33603039
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4321 sevena
2 4321 :
Справочники по Area и Region - эт стопудово верно! :)
таки нет.таки не "справочники", а "справочник".
Географический справочник древовидной структуры. Ибо место может быть указано с произвольной точностью внутри некоторого региона (расположенного внутри некоего супер-региона).
И опять таки одного идентифекатора места вполне достаточно (он уже сам сошлется на субрегион, регион и т.п. вверх по дереву).Опять зависит от приложения. Если один из Area, Region - географическое, а другой политико-административное деление, то может и два.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33603114
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelR Если один из Area, Region - географическое, а другой политико-административное деление, то может и два.согласен, если сущности не[вполне]зависимы.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33604038
sevena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо, распишу все явно и подробно на русском языке, как я сам понимаю.
Цунами характеризуется (Год, месяц, день, час, секунда, числовые параметры(интенсивности и тд), + ссылка на публикацию, ссылка на наиболее достоверные экономические потери, стандартную информацию, и параметры разрушений).
Высоты цунами характеризуются (название региона(страны), название области(остров или страна) , показания датчиков, координаты положения датчиков + ссылки на публикации, упоминающие данные показания).
Публикация характеризуется текстовыми полями такими как Авторы(просто перечисление), Ключевые слова и тд
Стандартная информация (тоже какие то числовые параметры) характеризуется тем из какого Агенства она взята, и ссылки на публикации, упоминающие эти параметры.
Таблица связей публикаций характеризуется публикациями и цунами.
То есть в каких публикациях какие цунами упоминаются. типа связь "многие к многим".
Ну а остальные это да - текстовые файлы с описаниями, фото файлы с картинками с места происшествия.

2 ModelR : Сорри - что то не пойму про обьединение фалов. В таблицах TextTable, PhotoTable хранятся имена на текстовые файлы и фото файлы соответственно. Причем картинок может быть очень много для конкретного цунами. А вот текстовое описание в 1 файле.

А про регионы и области - что можете посоветовать? Так как да там появляется некая избыточность - сам смотрел в базе данных там в основном везде повторяется Japan, Japan ...

Вот действительно непонятно с ссылками на публикации, вроде и связь на публикации о конкретном цунами реализована через промежуточную таблицу BiblioLinksTable. Но еще должны быть связи между отдельными параметрами (Ri, Rm) и публикациями. Ну вроде эта связь реализована в коде - но не как в виде внешнего ключа.
А чтобы ее реализовать нужно создать промежуточные таблицы для каждой таблицы, содержащей ссылки на публикации - так что ли?
И вот еще непонятно с ссылками на наиболее достоверную инофрмацию... Как же там быть?

ПС Надеюсь добавочная информация просветлит вас :) Если, что опять непонятно, то пишите - дополню
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33604105
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 sevena
>2 gardenman: Запросы всякие разные - сортировка, поиск , удаление и вставка и тд и тп.

Вы же наверно создаете базу данных не просто для того, чтобы хранить инфу о цунами. А для того чтобы ее в конце концов АНАЛИЗИРОВАТЬ. Например - анализировать частоту, скорость, высоту в разрезе - регионов времен года или еще как. Сначала ответте себе на вопрос - КАК вы собираетесь анализировать эти данные, набросайте итоговые таблицы отчетов, а потом уже выводите из них сущности.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33604195
sevena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 gardenman : База данных уже написана. Вот для чего только она написана не могу понять - говорят, что надо найти оптимум между удобной системой хранения данных и быстродействием. Пока задача найти удобный способ хранения данных. То есть подкорректировать текущую структуру.

Насчет ссылок подумал и вот, что надумал - не лучше ли будет создать дополнительный столбец Ссылка в таблицах и Значение Ссылки. Так вроде можно сэкономить на памяти в таблицах. Каково ваше мнение?
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33604371
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Вот для чего только она написана не могу понять

Да, для чего ее можно использовать в таком виде - абсолютная загадка.

> надо найти оптимум между удобной системой хранения данных и быстродействием

Пока забудьте про быстродействие. Структура данных даже отдаленно не напоминает рабочую.

Imho было бы разумным ввести понятие точки наблюдения (с географическими координатами; точка наблюдения может представлять собой населенный пункт, а может характеризироваться только координатами). Все параметры цунами - применительно к точке наблюдения. Плюс собственно характеристики цунами (видимо, что-то типа координат эпицентра etc). Публикации, фотографии и пр. связаны с точкой наблюдения. Публикации описываются стандартным образом, их авторы - тоже.

Про территориальный (и экстерриториальный) справочник уже говорили. Если измерение характеристик цунами производится по каким-то шкалам - обязательно описать их явным образом.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33604587
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sevenaХорошо, распишу все явно и подробно на русском языке, как я сам понимаю.
Цунами характеризуется (Год, месяц, день, час, секунда, числовые параметры(интенсивности и тд), + ссылка на публикацию, ссылка на наиболее достоверные экономические потери, стандартную информацию, и параметры разрушений).
Нет, в такой форме это мало что проясняет. Собственно основной вопрос проектирования структур данных - один или много ? sevena
Например, связь - Цунами . Ясно, что для данногоb]Цунами есть 0..1 достоверные экономические потери . Но остается не ясным, одни и те же достоверные экономические потери могут характеризовать разные Цунами ? Т.е. судя по диаграмме - да, а на самом деле?
Используйте нотацию Баркера для тестового описания связей. Это описание предъявляется спецам по предметной области для верификации и задается основной вопрос.
[quot sevena]
2 ModelR : Сорри - что то не пойму про обьединение фалов. В таблицах TextTable, PhotoTable хранятся имена на текстовые файлы и фото файлы соответственно. Причем картинок может быть очень много для конкретного цунами. А вот текстовое описание в 1 файле.Тогда логично предлагалось перенести его в сущность Цунами. sevena

А про регионы и области - что можете посоветовать? Так как да там появляется некая избыточность - сам смотрел в базе данных там в основном везде повторяется Japan, Japan ...Терзать заказчика. sevena

Вот действительно непонятно с ссылками на публикации, вроде и связь на публикации о конкретном цунами реализована через промежуточную таблицу BiblioLinksTable. Но еще должны быть связи между отдельными параметрами (Ri, Rm) и публикациями. Ну вроде эта связь реализована в коде - но не как в виде внешнего ключа.
А чтобы ее реализовать нужно создать промежуточные таблицы для каждой таблицы, содержащей ссылки на публикации - так что ли?
И вот еще непонятно с ссылками на наиболее достоверную инофрмацию... Как же там быть? BiblioLinksTable - суть Упоминание_Цунами_в_Публикации. Опять, допустимо ли более одного Упоминание_Цунами_в_Публикации для данной пары Цунами+Публикация? если нет, то эта пара - уникальный ключ. На него можно ссылаться, равно как и на суррогат.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33604764
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRНет, в такой форме это мало что проясняет.

субуго ИМХО при такой постанровке задачи основная таблица - Измерения или Survey - таблица фактов

дата - дата
место - регион
объект - цунами
значение1 - высота волны
значение2 - скрость прохождения
значение3 - объем разрушений
значениеn - whatever else
источник - ... источник информации

sevenaПоставлена задача об оптимизации структуры базы данных. Как на ваш взгляд есть ли какие-то серьезные недостатки проектирования у текущей структуры?
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33604929
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, начало 2454735 читать sevenaХорошо, распишу все явно и подробно на русском языке, как я сам понимаю.
Цунами характеризуется (Год, месяц, день, час, секунда, числовые параметры(интенсивности и тд), + ссылка на публикацию, ссылка на наиболее достоверные экономические потери, стандартную информацию, и параметры разрушений).
Нет, в такой форме это мало что проясняет. Собственно основной вопрос проектирования структур данных - один или много ?
Например, связь Достоверные экономические потери - Цунами . Из Вашего поста ясно, что для данного Цунами есть 0..1 Достоверные экономические потери . Но остается не ясным, одни и те же Достоверные экономические потери могут характеризовать разные Цунами ? Т.е. судя по диаграмме - да, а на самом деле?
Используйте нотацию Баркера для тестового описания связей. Это описание предъявляется спецам по предметной области для верификации, задается основной вопрос.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33607027
sevena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо давайте будем решать вопросы с простых вещей и в понятных обозначениях :

Цунами это
BASE RELATION TSUNAMI (TSU_ID#, ... DAMAGE_ID#)
PRIMARY KEY (TSU_ID#)
FOREIGN KEY (DAMAGE_ID#) REFERENCES DAMAGE

Разрушения это
BASE RELATION DAMAGE (DAMAGE_ID#, ... TSU_ID#)
PRIMARY KEY (DAMAGE_ID#)
FOREIGN KEY (TSU_ID#) REFERENCES TSUNAMI

Получилась нехорошая циклическая связь! Как этого избежать? Можно добавить просто поля DAMAGE к TSUNAMI и считать, что как раз эти поля и есть наиболее достоверные характеристики разрушения для данного цунами - это будет верным?

2 ModelR :
Поймите правильно - есть различные Разрушения соответствующие одному Цунами . Но среди этих Разрушений выделяется одно - наиболее достоверное для данного Цунами , причем это достоверное не может соответствовать другому Цунами . Вот спрашивается как это корректно сделать? Один вариант я предложил - вот только верен ли он на ваш взгляд? :)
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33607120
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sevenaПолучилась нехорошая циклическая связь! Вполне нормальная. Единственно, в логической модели лучше использовать более говорящие имена
Цунами
BASE RELATION TSUNAMI (TSU_ID#, ... MOST_RELIABLE_DAMAGE_ID#)
PRIMARY KEY (TSU_ID#)
FOREIGN KEY (MOST_RELIABLE_DAMAGE_ID#) REFERENCES DAMAGE

При желании можно усилить ограничения целостности и декларировать, что Разрушение , избранное в Цунами как наиболее достоверное, должно относиться к данному Цунами .

BASE RELATION DAMAGE (DAMAGE_ID#, ... TSU_ID#)
PRIMARY KEY (DAMAGE_ID#)
UNIQUE (DAMAGE_ID#,TSU_ID#) -- любое супермножество ключа уникально
FOREIGN KEY (TSU_ID#) REFERENCES TSUNAMI


BASE RELATION TSUNAMI
...
FOREIGN KEY (MOST_RELIABLE_DAMAGE_ID#,TSU_ID#) REFERENCES DAMAGE (DAMAGE_ID#,TSU_ID#)

sevenaМожно добавить просто поля DAMAGE к TSUNAMI и считать, что как раз эти поля и есть наиболее достоверные характеристики разрушения для данного цунами - это будет верным?ИМХО это усложнит запросы - данные о разрушениях будут в разных таблицах.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33607123
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sevenaХорошо давайте будем решать вопросы с простых вещей и в понятных обозначениях :

Цунами это
BASE RELATION TSUNAMI (TSU_ID#, ... DAMAGE_ID#)
PRIMARY KEY (TSU_ID#)
FOREIGN KEY (DAMAGE_ID#) REFERENCES DAMAGE

Разрушения это
BASE RELATION DAMAGE (DAMAGE_ID#, ... TSU_ID#)
PRIMARY KEY (DAMAGE_ID#)
FOREIGN KEY (TSU_ID#) REFERENCES TSUNAMI

Получилась нехорошая циклическая связь! Как этого избежать? Можно добавить просто поля DAMAGE к TSUNAMI и считать, что как раз эти поля и есть наиболее достоверные характеристики разрушения для данного цунами - это будет верным?

2 ModelR :
Поймите правильно - есть различные Разрушения соответствующие одному Цунами . Но среди этих Разрушений выделяется одно - наиболее достоверное для данного Цунами , причем это достоверное не может соответствовать другому Цунами . Вот спрашивается как это корректно сделать? Один вариант я предложил - вот только верен ли он на ваш взгляд? :)
Зачем делать циклическую ссылку?! Хватит и одной ссылки из ЦУНАМИ в РАЗРУШЕНИЯ...
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33607544
sevena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо - с этим понятно - правда база данных в Аксессе - не совсем понятно, как это можно там реализовать. Но это в вопрос на другую тему. :)
Теперь, как вы думаете быть с ссылками на публикации???
Ситация на данный момент такова :
ЦУНАМИ
BASE RELATION TSUNAMI (TSU_ID#, ... BIBLIO1_ID#, BILBLIO2_ID#, BILBLIO2_ID#...)
PRIMARY KEY (TSU_ID#)
FOREIGN KEY (BIBLIO1_ID#, BIBLIO2_ID#, BIBLIO3_ID# ...) REFERENCES BIBLIO NULLS ALLOWED

Публикации
BASE RELATION BIBLIO(BIB_ID#, ... )
PRIMARY KEY (BIB_ID#)

Исправим же ее следующим образом :

ЦУНАМИ
BASE RELATION TSUNAMI (TSU_ID#, ... BIBLINK_ID#)
PRIMARY KEY (TSU_ID#)
FOREIGN KEY (BIBLINK_ID#) REFERENCES BIBLINKS

ССЫЛКИ
BASE RELATION BIBLINKS (BIBLINK_ID#, TYPEOFLINK, TSU_ID#, BIBLIO_ID#)
PRIMARY KEY (BIBLINK_ID#)
FOREIGN KEY (TSU_ID#) REFERENCES TSUNAMI
(BIBLIO_ID#) REFERENCES BIBLIO

где TYPEOFLINK как раз и показывает что это за ссылка (RI, Rm и тд и тп ...)
Как на ваш взгляд - это верно? :)
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33607630
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sevenaХорошо - с этим понятно - правда база данных в Аксессе - не совсем понятно, как это можно там реализовать. Но это в вопрос на другую тему. :)
Теперь, как вы думаете быть с ссылками на публикации???
Ситация на данный момент такова :
ЦУНАМИ
BASE RELATION TSUNAMI (TSU_ID#, ... BIBLIO1_ID#, BILBLIO2_ID#, BILBLIO2_ID#...)
PRIMARY KEY (TSU_ID#)
FOREIGN KEY (BIBLIO1_ID#, BIBLIO2_ID#, BIBLIO3_ID# ...) REFERENCES BIBLIO NULLS ALLOWED

Публикации
BASE RELATION BIBLIO(BIB_ID#, ... )
PRIMARY KEY (BIB_ID#)

Исправим же ее следующим образом :

ЦУНАМИ
BASE RELATION TSUNAMI (TSU_ID#, ... BIBLINK_ID#)
PRIMARY KEY (TSU_ID#)
FOREIGN KEY (BIBLINK_ID#) REFERENCES BIBLINKS

ССЫЛКИ
BASE RELATION BIBLINKS (BIBLINK_ID#, TYPEOFLINK, TSU_ID#, BIBLIO_ID#)
PRIMARY KEY (BIBLINK_ID#)
FOREIGN KEY (TSU_ID#) REFERENCES TSUNAMI
(BIBLIO_ID#) REFERENCES BIBLIO

где TYPEOFLINK как раз и показывает что это за ссылка (RI, Rm и тд и тп ...)
Как на ваш взгляд - это верно? :)
Слушайте, Вы про нормализацию слышали? А про функциональные зависимости? Про универсальное отношение?

Так вот. По собранным данным составьте универсальное отношение, выделите функциональные зависимости и проведите нормализацию. И только после этого задавайте вопросы...
А то просто неприятно смотреть на

ЦУНАМИ
BASE RELATION TSUNAMI (TSU_ID#, ... BIBLIO1_ID#, BILBLIO2_ID#, BILBLIO2_ID#...)
PRIMARY KEY (TSU_ID#)
FOREIGN KEY (BIBLIO1_ID#, BIBLIO2_ID#, BIBLIO3_ID# ...) REFERENCES BIBLIO NULLS ALLOWED

Публикации
BASE RELATION BIBLIO(BIB_ID#, ... )
PRIMARY KEY (BIB_ID#)
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33612905
Не зарег.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To gardenman:

Но вот объясните, чем плохо id в каждой таблице???
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33613833
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не зарег.Но вот объясните, чем плохо id в каждой таблице???
Отсутствием гемороя при работе с БД ;)))
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33614215
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sevena
Исправим же ее следующим образом :
Гораздо лучше.
Насчет типа ссылки в БИБЛИНК. Раз их, атрибутов, теперь трое, то проверьте, нет ли функциональных зависимостей, запрещающих дублирование:
ЦУНАМИ + БИБЛИО -> ТИП
ЦУНАМИ + ТИП -> БИБЛИО

От последнего очевидно также зависит, как (и нужно ли вообще) ссылаться из таблиц данных (ЦУНАМИ, ВЫСОТА) на БИБЛИНК для указания источника сведений.

Если нужно, то возникает интересная проблема контроля целостности. Нужно контролировать что имя поля, имя таблицы соответсвуют значению поля из другой таблицы.
Т.е. ЦУНАМИ.ИСТОЧНИК_RMI_ИД должен ссылаться на БИБЛИНК, такой, что БИБЛИНК.ТИП ='RMI'. Некоторые советуют ввести константное поле в ЦУНАМИ.ИСТОЧНИК_RMI_ТИП =='RMI' и реализовать обычным ФК, однако ИМХО это перебор. Лучше триггерами. Но это чисто ИМХО.
...
Рейтинг: 0 / 0
31 сообщений из 31, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите плииз найти ошибки проектирования...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]