有人有将密钥值对存储在数据库中的经验吗?
我一直在使用这种类型的表:
CREATE TABLE key_value_pairs (
itemid varchar(32) NOT NULL,
itemkey varchar(32) NOT NULL,
itemvalue varchar(32) NOT NULL,
CONSTRAINT ct_primarykey PRIMARY KEY(itemid,itemkey)
)
Run Code Online (Sandbox Code Playgroud)
然后例如可以存在以下行:
itemid itemkey itemvalue
---------------- ------------- ------------
123 Colour Red
123 Size Medium
123 Fabric Cotton
Run Code Online (Sandbox Code Playgroud)
这种方案的问题是提取数据所需的SQL语法非常复杂.仅创建一系列键/值列会更好吗?
CREATE TABLE key_value_pairs (
itemid varchar(32) NOT NULL,
itemkey1 varchar(32) NOT NULL,
itemvalue1 varchar(32) NOT NULL,
itemkey2 varchar(32) NOT NULL,
itemvalue2 varchar(32) NOT NULL,
. . .etc . . .
)
Run Code Online (Sandbox Code Playgroud)
这将更容易,更快速地查询,但缺乏第一种方法的可扩展性.有什么建议?
重用代码与复制/粘贴的最佳做法是什么?
重用的问题可能是更改重用代码会影响许多其他功能.
这是好的和坏的:好的,如果更改是错误修复或有用的增强.如果其他重用代码意外破坏,因为它依赖于旧版本(或新版本有错误),那就太糟糕了.
在某些情况下,复制/粘贴似乎更好 - 粘贴代码的每个用户都有一个私有副本,它可以自定义而不会产生任何后果.
这个问题是否有最佳实践; 重复使用是否需要水密单元测试?
我试图找到一种方法来列出jar文件的(静态)依赖性要求,根据运行时需要的符号.
我可以看到类导出的方法可以使用"javap"列出,但似乎没有相反的工具来列出'imports'.是否有可能做到这一点?
这与Windows开发中的dumpbin实用程序类似,可用于列出DLL的导出和导入.
编辑:感谢您的回复; 我检查了所有的建议; 接受了DependencyFinder,因为它最符合我的要求.
如何在Java中执行此操作 - 将子类型集合传递给需要基类型集合的方法?
以下示例给出:
The method foo(Map<String,List>) is not applicable for the arguments (Map<String,MyList>)
Run Code Online (Sandbox Code Playgroud)
我可以通过为类型化集合创建类层次结构来实现 - 但是否则可能呢?
public void testStackOverflow() {
class MyList extends AbstractList {
public Object get(int index) {
return null;
}
public int size() {
return 0;
}
};
Map <String, List> baseColl = null;
Map <String, MyList> subColl = null;
foo (subColl);
}
private void foo (Map <String, List> in) {
}
Run Code Online (Sandbox Code Playgroud)
编辑:从答案中得出结论,这需要"有界通配符",因此添加此文本以进行搜索