2016-08-14 74 views
2

我试图在表格内存储矩形。用于存储左,顶部,宽度和高度的PostgreSql矩形数据类型

目前,我有4个单独的列:

  • 顶部
  • 离开
  • 宽度
  • 高度

我注意到,PostgreSQL提供叫box数据类型。

但是此数据类型自动重新排序基于所述值:

任何两个相对的角可以在输入被提供,但是根据需要来存储右上和左下的角,在该值将被重新排序订购。

我尝试使用矩形框的数据类型,但如前所述,它有时混合了左上角和右下角,所以它不适合存储顶部,左侧,宽度和高度。

我在写一个处理这些值的C#应用​​程序。因此,如果我有一个与C#Rectangle类型相同的数据类型,那将会很好。

我想知道如何实现矩形/矩形数据类型。也许甚至可以根据四个整数(array [4])编写自己的数据类型?

+0

什么不适用于您当前的解决方案? – Renzo

+0

@Renzo它混合基于左下角和右上角的值 - 讨厌处理矩形内的负值时。此外,我不能将其转换为本机C#矩形类型。我编辑了这个问题。 – Thomas

回答

0

它不混合点,它首先存储右上角的值。如果你需要他们,你只需要读出这些数据并自己计算出其他两点。

这并不是很复杂的东西 - 至少你可以读取顶部/右侧的点,并取顶部的值和底部/左侧的点,并取左边的点来获得你想要的顶部/左边点。同样,阅读宽度正好减去左边。

+0

我正在编写处理这些值的C#应用​​程序。因此,如果我有一个与C#Rectangle类型相同的数据类型,那将会很好。我编辑了这个问题,使之更加清晰。 – Thomas

+0

如果屏幕左下角的坐标起源,那么通过优化的索引机制将最大的2个数存储在一起会产生很大的意义。您必须在您的C#代码中编写一个外观来转换或用新的c#数据类型替换您的Rects。 – gbjbaanb

相关问题