MySQL:将所有1:m的值放入一个字段中?

时间:2011-11-21 23:41:35

标签: mysql database lucene entity-attribute-value

假设以下可能的模型:

模型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个或更多作者+关于出版商,页数等的信息)

如何通过这样的方式查询,以便我返回book.book_idbook.name + authors字段,其中包含与该书相关联的0个或更多值?

我正在尝试这样做,因此我可以将查询结果用作Lucene索引中的文档。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

Lucene支持多个具有相同名称的字段,这意味着您可以在同一文档中实际存储名为“作者”的多个字段。

我建议您实际执行此操作,并使用其他语句获取其他数据,例如:

一本书选择。 一个选择book_id和作者。