gpt4 book ai didi

google-app-engine - GAE/J 中的数据库设计 : relational modelling vs entity-attribute-value

转载 作者:太空宇宙 更新时间:2023-11-03 15:25:23 24 4
gpt4 key购买 nike

假设您计划创建一个在 GAE/Java 上运行的社交网络,其中每个用户都有一组属性(即年龄、当前城镇、兴趣)。

备选方案 1:经典方法 - user_id 和每个属性作为“行”

entity  property_1 property_2 property_3
------ ---------- ---------- -----------------
bob missing NY [football, books]
tom 34 missing [books, horses]

备选方案 2:实体属性值 (EAV)

entity   attribute   value
------ --------- -----
bob town NY
bob interests [football, books]
tom age 34
tom interests [books, horses]

您认为每个选项有哪些优点/缺点?我主要担心的是:

  1. 对多标准搜索有什么影响(即“给我年龄在 45 岁以下,住在纽约并且喜欢读书的用户”)
  2. 它对 GAE/J 有什么影响? (即索引、数据存储大小...)
  3. 如果您想检索“喜欢书的用户”,如何为具有多个值(例如“兴趣”)的属性建模?

我认为第二种选择更灵活并且可能更容易实现,但我想知道其他有经验的开发人员的想法。

谢谢。

最佳答案

你看过Building Scalable, Complex Apps on App Engine了吗?来自 Google I/O 2009?该视频的音质很糟糕,但涵盖了您的主题。他谈到了列表属性和合并联接及其局限性。

关于google-app-engine - GAE/J 中的数据库设计 : relational modelling vs entity-attribute-value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4484683/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com