【发布时间】:2012-03-20 18:50:13
【问题描述】:
我正在开发一个应用程序,我想知道哪种数据库最适合我。
我正在尝试对列表进行建模,但属性/结构因区域设置而异。我想在不同的语言环境特定结构中比较、搜索等这些列表/属性。始终可以选择为每个语言环境创建一个表,但最好引用 price = 100 之类的东西而不是 price_us = 100 OR price_de = 100 OR etc..
我在这里阅读了很多关于 MySQL 中 EAV 的问题,似乎它对我来说可能不是一个理想的解决方案(属性数量;过于复杂)。
有没有什么东西可以让我既灵活又像 FK 约束? (仅限于某些属性或值?)
【问题讨论】:
-
EAV 有什么问题?它始终是最好的方法,尤其是当您的项目比预期的要大时。它是一种逻辑结构,易于理解和处理。
-
你考虑过分成价格和货币吗?
-
@Andreas 这太笼统了。您能以任何方式支持或支持该主张吗?
-
Andreas 说
What's the problem with EAV? It is always the best approach, especially, when your project gets bigger than expected. It is a logic structure and easy to understand and handle.你认为股市数据库是EAV 吗?银行使用 EAV 吗?一切都有它的位置,但是说 EAV 是always the best approach简直太荒谬了,几乎就像说所有列都应该是字符串一样疯狂。 -
@Andreas:YMMV 但在大多数情况下,EAV 模式被认为是性能和维护的定时炸弹,这是有充分理由的。每个有兴趣的人都应该查找dba.stackexchange.com/questions/3492/…和thebuild.com/blog/2011/02/25/10-ways-to-kill-performanc
标签: mysql database database-design nosql entity-attribute-value