powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как правильно реализовать БД
25 сообщений из 30, страница 1 из 2
Как правильно реализовать БД
    #35794328
asik1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый День!
Подскажите ув. Гуру, какой вариант Вам более предпочтителен, и почему!
Релизация библиотеки
1-й вариант) Есть таблица Книги
Код: plaintext
1.
2.
  id:integer
  Nazvanie:varcher( 150 )
Есть таблица Авторы
Код: plaintext
1.
2.
  id_книги:integer
  FIO_Avtora:varcher( 150 )
==========================
2-й вариант) Есть таблица Книги
Код: plaintext
1.
2.
  id:integer
  Nazvanie:varcher( 150 )
Есть таблица Авторы
Код: plaintext
1.
2.
  id_автора:integer
  FIO_Avtora:varcher( 150 )
Есть таблица Связи(Книга-Автор)
Код: plaintext
1.
2.
3.
  id:integer
  Id_Книги:integer
  Id_Автора:integer
==========================
3-й вариант) Свой вариант.

Спасибо за ответы.... В офисе стоит работа, идут дебаты, скоро дойдём до мордобоя отстаивая каждый своё мнение.... Помогите!!!
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35794342
igor250973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asik1
Спасибо за ответы.... В офисе стоит работа, идут дебаты, скоро дойдём до мордобоя отстаивая каждый своё мнение.... Помогите!!!
зачем мордобой!? Перво-наперво начните с семантического моделирования предметной области и тогда всё само станет на места ;-)
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35794372
0bsid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
второй вариант лучше
т.к. у одной книги может быть несколько авторов
и у автора может быть несколько книг, которые он написал сам или в написании которых он участвовал
обычная связь многие ко многим
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35794373
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asik1В офисе стоит работа, идут дебаты, скоро дойдём до мордобоя отстаивая каждый своё мнение.... Помогите!!!
3-й вариант
Есть таблица Книги
Код: plaintext
1.
2.
  id:integer
  Nazvanie:varcher( 150 )
Есть таблица Авторы
Код: plaintext
1.
2.
  id_автора:integer
  FIO_Avtora:varcher( 150 )
Есть таблица Связи(Книга-Автор)
Код: plaintext
1.
2.
3.
  Id_Книги:integer
  Id_Автора:integer
  возможно, роль автора в создании книги, справочник
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35794413
Sasha_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0bsidвторой вариант лучше
т.к. у одной книги может быть несколько авторов
и у автора может быть несколько книг, которые он написал сам или в написании которых он участвовал
обычная связь многие ко многим
Да только представте пользователя которому при вводе новой книги прейдёться подвязывать этих авторов к книге. Рутинная работа неправдоли:)
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35794445
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sasha_SДа только представте пользователя которому при вводе новой книги прейдёться подвязывать этих авторов к книге. Рутинная работа неправдоли:)Ну, ему ещё много чего нужно будет для книги ввести, не только авторов.
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35794448
asik1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sasha_S0bsidвторой вариант лучше
т.к. у одной книги может быть несколько авторов
и у автора может быть несколько книг, которые он написал сам или в написании которых он участвовал
обычная связь многие ко многим
Да только представте пользователя которому при вводе новой книги прейдёться подвязывать этих авторов к книге. Рутинная работа неправдоли:)

Т.е. Вы предлагаете Вар 1, где будет количество записей в таблице авторы будет не МЕНЕЕ количества записей в таблице книг?
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35794460
asik1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgSasha_SДа только представте пользователя которому при вводе новой книги прейдёться подвязывать этих авторов к книге. Рутинная работа неправдоли:)Ну, ему ещё много чего нужно будет для книги ввести, не только авторов.
ну это естественно, но в данном контексте обсуждается реализация связки "много-к-многим"
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35794856
Slider_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно почитать: ОСНОВЫ ПРОЕКТИРОВАНИЯ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ там как раз даётся пример на вашу тему ;)
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35794978
Anatoly_Zaitsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МАРТИН ГРУБЕР Понимание SQL -Ваш случай
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35795991
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asik11-й вариант
Это не вариант. Это повод уволить проектировщика.

asik12-й вариант
Именно его и надо взять за основу.
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35796343
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sasha_SДа только представте пользователя которому при вводе новой книги прейдёться подвязывать этих авторов к книге. Рутинная работа неправдоли:)Сделайте ввод авторов в одну строку, разбор и анализ правильности ввода. Я что-то подобное делал на сервере, но ничего плохого нет, если то же самое сделать на клиенте.
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35796388
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_LСделайте ввод авторов в одну строку, разбор и анализ правильности ввода. Я что-то подобное делал на сервере, но ничего плохого нет, если то же самое сделать на клиенте.
Это тоже повод уволить проектировщика.
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35796563
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ВаскецовSenya_LСделайте ввод авторов в одну строку, разбор и анализ правильности ввода. Я что-то подобное делал на сервере, но ничего плохого нет, если то же самое сделать на клиенте.
Это тоже повод уволить проектировщика.+1

Вообще непонятно, о чём команда спорит несколько дней.

Наверное, это такой способ провести аттестацию в перидо кризиса :-)
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35796850
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ВаскецовSenya_LСделайте ввод авторов в одну строку, разбор и анализ правильности ввода. Я что-то подобное делал на сервере, но ничего плохого нет, если то же самое сделать на клиенте.
Это тоже повод уволить проектировщика.Строг ты царь-батюшка! (С) Фильм

Это в каком-же месте проектирование здесь затронуто? Це ж був оффтопiк :)
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35796876
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_LЭто в каком-же месте проектирование здесь затронуто?вот здесь: Senya_L Сделайте ввод авторов в одну строку...Я что-то подобное делал на сервере... .
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35796916
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychSenya_LЭто в каком-же месте проектирование здесь затронуто?вот здесь: Senya_L Сделайте ввод авторов в одну строку...Я что-то подобное делал на сервере... .И чем же плох ввод всех авторов одной строкой и последующий синтаксический анализ?

К проектированию БД это не имеет никакого отношения, имхо. Это скорее к проектированию пользовательского интерфейса. То ли из справочника выбирать автора мучительно и долго, то ли просто напечатать так, как они упомянуты bibref - есть разница?
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35797084
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_LК проектированию БД это не имеет никакого отношения
Хм. Проектирование полей и их назначения - это не проектирование БД?

Senya_LЭто скорее к проектированию пользовательского интерфейса
Как раз все с точностью до наборот. В интерфейсе это может выглядеть как отдельная закладка со списком авторов или вообще все что угодно вплоть до ввода авторов по их отпечаткам пальцев, а в БД такой мусор. Но маньякам потакать не люблю, поэтому - уволить.
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35797094
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_LТо ли из справочника выбирать автора мучительно и долго
Реализация быстрого поиска, поиска по коду и прочие хитрости явно оффтопик, но их незнание не может быть аргументом.

Senya_Lто ли просто напечатать так, как они упомянуты bibref - есть разница?
Подобная постановка превращает элементарный поиск книг по автору в танцы с бубном.
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35797305
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Сергей Васкецов,

Вы не разобравшись приказываете рубить голову :) Да и я был немногословен, а в итоге каждый о своем. Лучше я расскажу как это делалось в одной БД библиотечного толка.

Авторы набивались в одну строку, причем требования простые: сначала инициалы, инициалы заканчиваются точкой, между инициалами нет пробелов, между последним инициалом и фамилией по-крайней мере один пробел. Несложно, правда? Для сохранения в ХП передаем эту строку с авторами и прочие данные. Строку авторов с помощью UDF разбираем по отдельным авторам и делаем применительно к таблице "Авторы" UPDATE OR INSERT. В таблице "Авторы" храним фамилию и инициалы (больше и не надо). И, конечно же, между Книгами и Авторами связь многие-ко-многим. Никто ж не спорит. В таблице связи указать порядковый номер автора в издании.
Сергей ВаскецовПодобная постановка превращает элементарный поиск книг по автору в танцы с бубном.Так что никаких танцев. Хотя каюсь, тогда был молод и сделал денормализацию: в "Книгах" хранил список авторов в одном поле. ;) Но все триггеры честно "навесил" :)
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35797456
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_LАвторы набивались в одну строку, причем требования простые: сначала инициалы, инициалы заканчиваются точкой, между инициалами нет пробелов, между последним инициалом и фамилией по-крайней мере один пробел. Несложно, правда? орфографические ашипки, различие в регистрах, отсутствие/наличие лишних пробелов... вы общались с пользователями вашей системы? с операторами? задавали им вопросы, удобно ли им? предлагали ли альтернативные варианты?
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35797552
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_L2Сергей Васкецов,

Вы не разобравшись приказываете рубить голову :)Нет человека, нет проблемы :-)

Senya_LИ чем же плох ввод всех авторов одной строкой и последующий синтаксический анализ?

К проектированию БД это не имеет никакого отношения, имхо. Это скорее к проектированию пользовательского интерфейса. То ли из справочника выбирать автора мучительно и долго, то ли просто напечатать так, как они упомянуты bibref - есть разница?Мы говорили исключительно о схеме БД, поэтому вас не так поняли...

А в принципе, идея для интерфейса нормальная, но не как автоматический парсинг и вставка полученных авторов (тут будет много ошибок при снижении уровня ответственности операторов за чистоту данных), а как хороший способ упростить поиск данных в справочнике.

Например, оператор ввёл "Morris David Burkitt"
Это один человек, или два, или три, или ошибка в какой-нибуть букве?

Клиент, порывшись в справочнике, может предложить несколько вариантов авторов (с подсветкой возможного исправления ошибок), оператор выберет правильный, ну а если в справочнике нет - то заведёт.
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35797798
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgНапример, оператор ввёл "Morris David Burkitt"
Это один человек, или два, или три, или ошибка в какой-нибуть букве?Такой пример точно не пройдет, я почти все проводимые проверки перечислил. А по поводу защиты от ошибок... Вы же сами понимаете, что никто не помешает пользователю ошибиться при занесении автора в справочник. Так что от ошибок полную гарантию дать никто не может. А насчет
alexeyvg...а как хороший способ упростить поиск данных в справочнике.Такая идея была, но.... понимаете ли... База была по научной периодике, а авторов такое сейчас количество, как собак... Ну, понимаете, китайцев-то много ;) Вобщем, это равносильно занесению каждого из справочника, помощи маловато выходит.
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35797873
Сергей из Самары
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_LТакой пример точно не пройдет, я почти все проводимые проверки перечислил. А по поводу защиты от ошибок... Вы же сами понимаете, что никто не помешает пользователю ошибиться при занесении автора в справочник. Так что от ошибок полную гарантию дать никто не может.

А как будет осуществляться поиск по автору в базе, когда она вырастит до большой? И что проще: исправить ошибку в справочнике или выискивать ошибочно введенного автора по всей базе? Причем один оператор занесет автора как Достоевский, второй Дастаевский, третий Дасваевский. Это один автор с ошибочно написана или три разных человека?
...
Рейтинг: 0 / 0
Как правильно реализовать БД
    #35797896
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей из СамарыSenya_LТакой пример точно не пройдет, я почти все проводимые проверки перечислил. А по поводу защиты от ошибок... Вы же сами понимаете, что никто не помешает пользователю ошибиться при занесении автора в справочник. Так что от ошибок полную гарантию дать никто не может.

А как будет осуществляться поиск по автору в базе, когда она вырастит до большой? И что проще: исправить ошибку в справочнике или выискивать ошибочно введенного автора по всей базе? Причем один оператор занесет автора как Достоевский, второй Дастаевский, третий Дасваевский. Это один автор с ошибочно написана или три разных человека?Ну вот не надо справочники расписывать как панацею от всех ошибок операторов. Что помешает этому же человеку занести в справочник "Дасваевского"? На каждого хитрого программиста всегда найдется свой юзверь с винтом :)
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как правильно реализовать БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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