2011-11-21 56 views
1

假定以下可能的模型:MySQL:將1:m的所有值放入一個字段中?

模型1:

TABLE: book 
- book_id 
- name 

TABLE: book_author 
- book_author_id 
- book_id 
- author_id 

TABLE: author 
- author_id 
- name 

(一本書可以有0個或多個作者)

模型2:

TABLE: book 
- book_id 
- name 

TABLE: book_eav 
- book_eav_id 
- book_id 
- attribute (e.g. "author") 
- value (e.g. "Tom Clancy") 

(一本書可以有0個或更多作者+關於publi的信息SHER,頁數等)

如何查詢這個以這樣的方式,我回來book.book_idbook.name +包含與圖書相關的0個或多個值的authors場?

我試圖做到這一點,所以我可以在Lucene索引中使用查詢結果作爲文檔。

回答

0

Lucene支持具有相同名稱的多個領域,這意味着你可以實際存儲名爲「作者」放在同一文件的多個領域。

我建議你真的這樣做,並用另一份聲明中獲取額外的數據,例如:

一個選擇的書籍。 一個選擇book_id和作者。

相關問題