java – 在数据库中存储形状的最佳方法是什么

我正在实现一个处理Java Shapes的应用程序.每个用户登录并从MySql数据库中检索库存.形状有不同的构造函数和行为.
那么,存储形状的最佳方法是什么?这是我的一些想法:
>序列化形状并将其存储为Blob.但是如果我必须更改Shape类,我会有一个版本控制问题,因为我需要更大的数据库和查询性能
>使用常见字段(如宽度和高度)创建一个Shape表,并为每个引用Shape表的形状创建一个表.这可能导致很多表……
>创建一个包含所有可能字段的Shape表,并将null设置为不需要该字段的形状…
你怎么看 ?
解决方法:
技术上不是答案,但也许这里的问题是SQL?我认为像CouchDB这样的文档存储系统对于这种情况可能是一种更有效的解决方案.
我在想这样的事情:
{
"_id": "whatever",
"_rev": "whatever",
"boundingBox": [
[0 0],
[2 2]
],
"size": [2 2],
"circle": {
"center": [1 1],
"radius": 1
}
}
“circle”节将根据形状改变名称和细节.矩形将具有角(类似于“boundingBox”),椭圆体将具有…无论什么定义椭圆体:p