我有一个表,它需要每一行存储同一类型的行的有序集合。
例如,我正在想象类似的事情:

class blah
{
   float yetMoreData;
};

class foo
{
   int data;
   String moreData;
   blah[] anOrderedCollectionOfBlahClasses;
};

实现这一目标的最佳途径是什么?

最佳答案

您希望BlahFoo是单独的表,其中BlahFoo有多对一的关系。Blah表中的记录应具有外键foo_id,用于标识其父foo记录。Blah还有一个index_in_array属性,允许对结果进行排序。

CREATE TABLE Foo (
    id BIGINT,
    data INT,
    moreData CHAR(50)
);

CREATE TABLE Blah (
    id BIGINT,
    yetMoreData DOUBLE,
    foo_id BIGINT,
    index_in_array INT
);

如果要获取给定Blah的所有Foos(例如,id为5的Foo),请使用:
SELECT * FROM Blah
WHERE Blah.foo_id = 5
ORDER BY Blah.index_in_array;

如果您要对记录进行排序,通常不应该是任意的(除非该任意顺序是由用户特别选择的,例如排序待办事项列表中的项目)。通常,您会根据数据的一些“自然发生”属性进行排序,如添加日期或按名称的字母顺序等。
注意:这个答案应该是伪代码SQL——在将其转换成脚本之前,请确保将其适应特定的数据库语法。(别忘了添加一些键和索引!)

关于sql - SQL中的数组相当于什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10748098/

10-11 09:04
查看更多