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

标签 java mysql shapes

<分区>

我正在实现一个处理 Java Shapes 的应用程序。每个用户登录并从 MySql 数据库中检索 list 。形状具有不同的构造函数和行为。

那么,存储形状的最佳方式是什么?这是我的一些想法:

  • 序列化形状并将其存储为 Blob。但是如果我必须更改 Shape 类,除了数据库的大尺寸和查询性能之外,我还会遇到版本控制问题
  • 制作一个形状表,其中包含宽度和高度等公共(public)字段,并为每个形状创建一个表,该表引用该形状表。这可能会导致很多表...
  • 创建一个包含所有可能字段的 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

关于java - 在数据库中存储形状的最佳方式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6811365/

相关文章:

android - 按钮不会改变其在选择器中的形状

java - 正则表达式将以下行拆分为各个字段?

java - hashandlers在gwt中是什么意思

mysql - DataTables - 过滤一组值中的数据

php - 电子邮件中的动态表

java - 在中风android上设置渐变

java - EHCache-org.ehcache.StateTransitionException : Persistence directory already locked by another process

java - 通过反射 API 在类加载器之间传递参数

mysql - 如何解决 MySQL Error Code : 1292. Truncated incorrect DOUBLE value?

algorithm - 将对象分布在一个圆圈内