Java 向要存储在数据库中的字符串键(行键)添加前缀的推荐方法

Java 向要存储在数据库中的字符串键(行键)添加前缀的推荐方法,java,database,jakarta-ee,Java,Database,Jakarta Ee,在Java中,向要存储在web应用程序数据库中的字符串键添加前缀的推荐方法是什么 我每个实体都有一个EntityId,但我想在不同的行中存储实体的不同类型的数据,这些行由前缀EntityId键区分,如下格式: EntityId | PrefixForThisDataCategory一般来说,数据库抵制这种事情。不过,他们很乐意将“前缀”字符存储在单独的列中。如果该列需要成为复合键的一部分,他们也很乐意这样做 但是,如果您想在同一个表的不同行中存储不同类型的数据,我希望我可以阻止您。数据库——也就

在Java中,向要存储在web应用程序数据库中的字符串键添加前缀的推荐方法是什么

我每个实体都有一个EntityId,但我想在不同的行中存储实体的不同类型的数据,这些行由前缀EntityId键区分,如下格式:
EntityId | PrefixForThisDataCategory

一般来说,数据库抵制这种事情。不过,他们很乐意将“前缀”字符存储在单独的列中。如果该列需要成为复合键的一部分,他们也很乐意这样做

但是,如果您想在同一个表的不同行中存储不同类型的数据,我希望我可以阻止您。数据库——也就是SQL数据库——设计用于在不同的表中保存不同类型的数据。一个表中的人员,另一个表中的地址。不是人表中某些行的地址


当然,你的目标可能完全不同

如果我正确理解了您的问题,您基本上希望在一个公共表中存储表示不同信息集的数据,并使用一个或多个字段来区分存储的数据类型

这真是个坏主意不得不说:——)

根据许多项目的经验,我可以告诉您,以这种方式存储数据总是会导致问题和非常混乱的代码。我强烈建议将数据存储在单独的表中


但是,我可以想到一种类似于您的请求的变体,那就是hibernate中的派生类映射。hibernate根据存储的类将数据集映射到表中。这只用于映射类的层次结构,由hibernate控制,这样您就不用担心了。

我不是在处理SQL数据库,我使用的是Cassandra,在NOSQL DBs中这样做是一种正常的做法(到目前为止我已经看到了)此外,我尝试将数据类型放在一个单列族中并没有太大的不同。我不使用SQL数据库,而是使用Cassandra,我认为这是NOSQL DBs中的一种正常做法(我在周围看到的)此外,我正试图将数据类型放在一个列族中,但它们并没有太大区别。我为您添加了一个“Cassandra”标记。