【问题标题】:Exclude fields from entities in Korma从 Korma 中的实体中排除字段
【发布时间】:2014-11-14 13:52:25
【问题描述】:

我有一些表有很多列,有时我需要从 50-60 中排除 5-6。是的,我的表格是 3NF 标准化的,是的,有些表格甚至超过 60 列,如果亲爱的读者这听起来很奇怪,请尝试对生物实体进行建模。

我的问题:

是否可以在 Korma 的选择中默认排除字段,而不是在实体定义时在 entity-fields 中指定数十列?

【问题讨论】:

  • 什么样的数据库? postgresql?
  • 是的,我使用的是 postgresql 9.3。

标签: sql clojure korma


【解决方案1】:

使用sql获取所有列并生成entity-fields

select column_name, data_type, character_maximum_length
from INFORMATION_SCHEMA.COLUMNS where table_name = '<name of table>';

最好不要选择未使用的字段,而不是稍后过滤它们。

【讨论】:

    【解决方案2】:

    基于谷歌搜索,这在普通 SQL 中不容易完成,这使得在应用程序级别上也有些困难。

    您从数据库接收到完整的有效负载是否有问题?如果不是,那么您可以添加一个删除不需要的字段的后处理功能。

    user=> (def unwanted-columns [:foo :bar])
    #'user/unwanted-columns
    user=> (map #(apply dissoc % unwanted-columns) [{:foo 1 :bar 2 :baz 3}])
    ({:baz 3})
    

    【讨论】:

    • 这就是我目前的做法。我想看看是否存在更好的解决方案。谢谢。
    • 第二个要选择的参数是字段选择器。我在这里不明白什么?
    • @TommiKyntola,作者不想在 select 子句中列出 50-55 个不同的列,只列出 需要的 5-10 个。
    猜你喜欢
    • 2016-09-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多