使用另一个表的记录作为元素列出SQL中的数据结构

时间:2010-12-16 01:37:58

标签: sql list

如何在列表中定义一个字段(甚至可以是一个集合),但列表中的元素是另一个表中的所有记录?

理想情况下,我会这样:

CREATE TABLE ListElements (
    ID int,
    Name varchar(255)
)

CREATE TABLE TableWithList (
    ID int,
    SomeField varchar(255),
    AList List(ListElements)
)

目前我能想到的唯一解决方案是让 AList 成为一个字符串(TEXT),列出所有列表元素的ID。

有没有更好的方法呢?

2 个答案:

答案 0 :(得分:3)

你会想要这样的东西:

CREATE TABLE Element (
   ID int,
   Name varchar(255)
)

CREATE TABLE List (
   ID int,
   ListName varchar(255)
)

CREATE TABLE ListsElements (
   ElementID int,
   ListID int
)

ListID中的ListsElements将与ID中的List相对应,ElementID中的ListsElements将与{{1}相对应在ID

当您更改Element时,它会在所有列表中更改。

如果您有不同类型的元素,这仍然有用。只需使用元素类型向Element添加字段即可。你仍然会有一个表来表示所有不同类型的元素(没有真正的方法),但只有一个表用于列表及其关系。

答案 1 :(得分:0)

只需参考您尝试将列表填入的表格中的列表,然后您就可以充分利用这两个世界。