好的,所以几乎每个基于数据库的应用程序都必须处理"非活动"记录.软删除或标记为"被忽略".我很好奇是否对"活动"列(或状态列)有任何激进的替代想法.
例如,如果我有一个人员列表
CREATE TABLE people (
id INTEGER PRIMARY KEY,
name VARCHAR(100),
active BOOLEAN,
...
);
Run Code Online (Sandbox Code Playgroud)
这意味着要获得活跃人员列表,您需要使用
SELECT * FROM people WHERE active=True;
Run Code Online (Sandbox Code Playgroud)
有没有人建议将非活动记录移到一个单独的表中,并且在哪个合适的UNION完成加入这两个?
好奇心引人注目......
编辑: 我应该说清楚,我是从纯粹的角度来看待这个问题.我可以看到数据归档对于大量数据可能是必要的,但这不是我来自的地方.如果你做一个SELECT*FROM人,那对我来说这些条目在某种意义上是"活跃的"是有意义的
谢谢
我想在这里加快我的发现过程,因为这是我第一次进入词汇分析世界.也许这甚至是错误的道路.首先,我将描述我的问题:
我有非常大的属性文件(大约有1,000个属性),在提炼时,它们实际上只有大约15个重要属性,其余的可以生成或很少更改.
所以,例如:
general {
name = myname
ip = 127.0.0.1
}
component1 {
key = value
foo = bar
}
Run Code Online (Sandbox Code Playgroud)
这是我想要创建的格式类型,用于标记类似于:
property.${general.name}blah.home.directory = /blah
property.${general.name}.ip = ${general.ip}
property.${component1}.ip = ${general.ip}
property.${component1}.foo = ${component1.foo}
Run Code Online (Sandbox Code Playgroud)
成
property.mynameblah.home.directory = /blah
property.myname.ip = 127.0.0.1
property.component1.ip = 127.0.0.1
property.component1.foo = bar
Run Code Online (Sandbox Code Playgroud)
词法分析和标记化听起来像是我最好的路线,但这是一种非常简单的形式.这是一个简单的语法,一个简单的替代,我想确保我没有带一个大锤敲钉子.
我可以创建自己的词法分析器和标记器,或ANTlr是可能的,但我不喜欢重新发明轮子和ANTlr听起来有点矫枉过正.
我不熟悉编译器技术,因此最理解指向正确方向和代码的指针.
注意:我可以更改输入格式.