2

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

对于我的问题:

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

4

2 回答 2

1

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

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

user=> (def unwanted-columns [:foo :bar])
#'user/unwanted-columns
user=> (map #(apply dissoc % unwanted-columns) [{:foo 1 :bar 2 :baz 3}])
({:baz 3})
于 2014-11-14T15:13:36.237 回答
1

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

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

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

于 2014-11-16T16:47:31.107 回答