创建基于 YAML 的列表与 Rails 中的模型
Creating a YAML based list vs. a model in Rails
我有一个主要由餐厅模型实例组成的应用程序。这些餐厅的基本属性之一是标记其所属的 菜系。我目前在设计这个方面与自己意见相左。一方面,我想创建一个 Cuisine
模型并在 Restaurants
和 Cuisines
之间创建一个 HMT
或 HABTM
关联。
最近我看到了这个 post,它展示了如何创建一组预定义的属性。为了进一步回答问题,我假设(在我的例子中)我会在我的餐厅模型中添加一个基于字符串的 cuisine
列,并在我的餐厅表单中设置一个 select 框,这样可以节省selected 值。
我想知道最有效的方法是什么?目标是最终能够根据餐厅所属的菜系查询餐厅。我不确定模型是否是最佳选择,因为它在某种意义上仅用作 join table 和 name
属性。不确定为如此微小的事情添加额外的 table 是否是最佳选择。
另一方面,我不知道为此使用 YAML 是否有帮助,因为这些值本质上是虚拟字符串,没有像模型实例那样的有形记录。有人可以帮我解决这个困惑吗?
规范化数据库中的多对多关系有很多好处。 Here are some:
- 搜索、排序和创建索引更快,因为 table 更窄,数据页上可以容纳更多行。
- 您可以拥有更多聚簇索引(每个 table 一个),这样您就可以更灵活地调整查询。
- 索引搜索通常更快,因为索引往往更窄更短。
- 更多 table 允许更好地使用段来控制数据的物理位置。
- 通常每个 table 的索引较少,因此数据修改命令更快。
- 更少的空值和更少的冗余数据,使您的数据库更加紧凑。
- 如果您不维护冗余数据,触发器的执行速度会更快。
- 数据修改异常减少。
- 规范化在概念上更清晰,更易于维护和随需求变化而变化。
此外,通过规范化,您可以从 ActiveRecord 获得更清晰的语法和其他基础架构优势,例如
cuisine.restaurants.where(city: 'Toledo')
我有一个主要由餐厅模型实例组成的应用程序。这些餐厅的基本属性之一是标记其所属的 菜系。我目前在设计这个方面与自己意见相左。一方面,我想创建一个 Cuisine
模型并在 Restaurants
和 Cuisines
之间创建一个 HMT
或 HABTM
关联。
最近我看到了这个 post,它展示了如何创建一组预定义的属性。为了进一步回答问题,我假设(在我的例子中)我会在我的餐厅模型中添加一个基于字符串的 cuisine
列,并在我的餐厅表单中设置一个 select 框,这样可以节省selected 值。
我想知道最有效的方法是什么?目标是最终能够根据餐厅所属的菜系查询餐厅。我不确定模型是否是最佳选择,因为它在某种意义上仅用作 join table 和 name
属性。不确定为如此微小的事情添加额外的 table 是否是最佳选择。
另一方面,我不知道为此使用 YAML 是否有帮助,因为这些值本质上是虚拟字符串,没有像模型实例那样的有形记录。有人可以帮我解决这个困惑吗?
规范化数据库中的多对多关系有很多好处。 Here are some:
- 搜索、排序和创建索引更快,因为 table 更窄,数据页上可以容纳更多行。
- 您可以拥有更多聚簇索引(每个 table 一个),这样您就可以更灵活地调整查询。
- 索引搜索通常更快,因为索引往往更窄更短。
- 更多 table 允许更好地使用段来控制数据的物理位置。
- 通常每个 table 的索引较少,因此数据修改命令更快。
- 更少的空值和更少的冗余数据,使您的数据库更加紧凑。
- 如果您不维护冗余数据,触发器的执行速度会更快。
- 数据修改异常减少。
- 规范化在概念上更清晰,更易于维护和随需求变化而变化。
此外,通过规范化,您可以从 ActiveRecord 获得更清晰的语法和其他基础架构优势,例如
cuisine.restaurants.where(city: 'Toledo')