Отношение настоящих имен авторов к псевдонимам в базе данных - PullRequest
1 голос
/ 18 февраля 2011

Я разбираюсь с небольшим проектом базы данных (sqlite или mysql) для учебных целей ... подумал, что я буду работать над каталогизацией некоторых из моих многочисленных книг;)

Думал, что большинство таблиц и отношений проработано до тех пор, пока я не начал изучать некоторые примеры данных из определенной серии книг. Один из авторов пишет под псевдонимом в этой серии / жанре, но под совершенно другим названием другого жанра, и его «настоящее» имя - это нечто совершенно другое. Добавьте к веселью, что иногда читатель (я) может не знать, что имя автора на обложке является псевдонимом или нет.

Какие-нибудь идеи или предложения о том, как бороться с такого рода вещами на практике?

ТИА

Monte

Ответы [ 3 ]

1 голос
/ 18 февраля 2011

Ответы @Adam и @mellamokb не учитывают некоторые другие сложности:

  1. Имена перьев могут использоваться авторами
  2. У автора может быть ноль-много пераИмена
  3. Имя пера может принадлежать автору
  4. Имя пера может быть именем пера дома (издателя), используемым нулевым числом авторов
  5. Имя перачасто используется, когда автор начинает сотрудничать с одним или несколькими другими авторами, для совместной работы.
  6. Как вы говорите, не всегда очевидно, что имя является псевдонимом, поэтому вы должны сделать предположение, чтоимя является реальным, если вы не знаете иначе.

Очевидно, что иметь дело со всеми этими случаями стоит только тогда, когда количество книг велико - до того, как я избавился от своей коллекции книг (около 15 000), я былобдумывая переход к такому решению, из-за псевдонимов и из-за отредактированных сборников и серий статей.

Если вы хотите пойти по этому пути, хорошее место для начала - Шаблоны анализа Мартина Фаулера или стандарты IEEE для описаний авторов собственных публикаций.

0 голосов
/ 18 февраля 2011

Я бы создал три столбца, связанных с именами, в таблице authors, например ::10000

authors
-------
author_id
author_name
author_alt_name
author_pseudonym

и предположим, что таблица books имеет внешний ключ для authors, например ::

books
-----
book_id
book_title
...
author_id

... тогда вы можете запросить книги этого автора, используя author_id и, таким образом, независимо от различных имен, которые он / она использует.

0 голосов
/ 18 февраля 2011

Одно из многих возможных решений:

  • tblAuthors содержит авторов (только настоящие имена).
  • tblPenNames содержит псевдонимы и относится к tblAuthors.
  • tblBooks имеет AuthorID, связывающий с tblAuthors, и необязательный PenNameID, связывающий с tblPenNames.

Другое решение

  • tblAuthors содержит авторов или псевдонимы.
  • tblAuthors имеет необязательный PenNameForAuthorID, ссылающийся на другого автора.
  • У tblBooks есть AuthorID, связывающий с tblAuthors.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...