我有许多具有不同数量属性的不同对象。到目前为止,我已经将数据保存在XML文件中,该文件很容易允许数量不断变化的属性。但是我正在尝试将其移至数据库。
您首选的存储数据方式是什么?
到目前为止,我已经确定了一些策略:
有任何想法吗?
如果你 曾经 在搜索特定属性的计划,这是一个坏主意,它们序列化为一列,因为你将不得不使用每行的功能得到了信息-这种情况很少很好地扩展。
我会选择您的第二选择。在属性表中具有属性列表,在其自己的表中具有对象,以及称为对象属性的多对多关系表。
例如:
objects:
object_id integer
object_name varchar(20)
primary key (object_id)
attributes:
attr_id integer
attr_name varchar(20)
primary key (attr_id)
object_attributes:
object_id integer references (objects.object_id)
attr_id integer references (attributes.attr_id)
oa_value varchar(20)
primary key (object_id,attr_id)
注意到您对性能的关注,但是以我的经验来看,拆分一列总是比合并多个列更昂贵。如果发现存在性能问题,出于性能原因而中断3NF是完全可以接受的。
在那种情况下,我将以相同的方式存储它,但是还会有一个包含原始序列化数据的列。只要您使用插入/更新触发器来使列数据和组合数据保持同步,就不会有任何问题。但是,在实际问题浮出水面之前,您不必担心。
通过使用这些触发器,可以最大程度地减少 仅 在数据更改时所需的工作。通过尝试提取子列信息,您对 每个 选择都做了不必要的工作。
问题内容: 我想做类似Python在应用程序引擎上支持的Expando模型的事情。 有时您不想提前声明属性。特殊的模型子类Expando更改其实体的行为,以便将分配的所有属性(只要它不以下划线开头)都保存到数据存储区。 如何在Go中执行此操作? 问题答案: 事先注意: 有2个API。具有导入路径的那个使用通道作为参数。具有导入路径的另一个使用切片。根据您的情况调整以下示例。 具有动态属性的实体的关
我是android studio的初学者,希望在room数据库中存储语言数组列表。有人能建议我怎么做吗?
我创建了一个TextView,它以多行显示值 ,我希望将该值保留在SQLite数据库中。这是我使用的代码: 问题是当我保存值时,整个值被插入到一个单元格中。我希望每行的值分开,然后插入到每行的单个单元格中,尽管我使用扫描器方法插入数据,但它不起作用。那有什么办法吗?
问题内容: 因此,在C ++ / C#中,您可以创建标志枚举来保存多个值,并且在数据库中存储单个有意义的整数当然是微不足道的。 在Java中,您有EnumSets,这似乎是在内存中传递枚举的一种很好的方法,但是如何将组合的EnumSet输出为整数进行存储?还有另一种方法可以解决这个问题吗? 问题答案:
我是Spring Data JPA的新手。我试图为存储库创建一个自定义方法,但是它确实抛出了一个异常。以下是我目前的实现: 这是我启动应用程序时发生的异常(我正在使用 Spring 启动)。
我的MySQL数据库中有四个表。 订单 项目 Orders_Items 客户 订单表 订单ID客户ID 项目表 item_id item_name item_price item_quantity orders_items表 order_item_id order_id item_id 客户表 customer_id customer_name 我想显示一个表,该表列出订单表中的所有订单,并将所有