2011-02-18 33 views
1

我踢圍繞學習目的的小型數據庫項目(SQLite的或MySQL)實名筆名......想我會在編目一些我很多書工作;)與作者在數據庫

以爲我有大部分表格和關係都已經解決了,直到我開始閱讀並填充特定書籍系列的一些示例數據。其中一位作者在這個系列/流派中以筆名寫下,但是以另一種流派的完全不同的名字,而他的「真實」名字完全是另一回事。添加到有趣的是,有時候讀者(我)可能不知道封面上的作者姓名是否是筆名。

如何在實踐中處理這類事情的任何想法或建議?

TIA,

回答

1

從@Adam和@mellamokb的答案不採取一些其他併發症的帳戶:

  1. 筆名稱可以使用作者
  2. 的作者可能具有零許多筆名
  3. 一筆名可以屬於作者
  4. 筆名可以是房屋(出版商)筆名,由多個作者使用
  5. 當筆者開始與一個或多個其他人合作時,筆名通常被採用uthors,合作。
  6. 正如你所說,一個名字並不總是顯而易見的,所以你必須假設一個名字是真實的,除非你知道否則。

很明顯,處理所有這些案件是值得的,如果書的數量很大 - 在我處理我的書籍收藏(約15,000)之前,我正在考慮轉移到這種解決方案,因爲筆名,以及編輯選集和文章系列。

如果你想走這條路,一個好的開始是Martin Fowler's Analysis Patterns或IEEE標準的作者描述自己的出版物。

0

是許多可能的解決方案:

  • tblAuthors包含作者(只有真實姓名)。
  • tblPenNames包含筆名並與tblAuthors有關。
  • tblBooks有一個AuthorID鏈接到tblAuthors和一個可選的PenNameID鏈接到tblPenNames。

另一種解決方案

  • tblAuthors包含作者或筆名。
  • tblAuthors有一個可選的PenNameForAuthorID鏈接到另一個作者。
  • tblBooks有一個AuthorID鏈接到tblAuthors。
0

我將創建一個authors三表名稱相關的欄目,如:

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

,並假設該books表有一個外鍵authors,如:

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

。 ..然後你可以使用author_id查詢該作者的書籍,從而獨立於他/她使用的各種名稱。