如何在列表中定义一个字段(甚至可以是一个集合),但列表中的元素是另一个表中的所有记录?
理想情况下,我会这样:
CREATE TABLE ListElements (
ID int,
Name varchar(255)
)
CREATE TABLE TableWithList (
ID int,
SomeField varchar(255),
AList List(ListElements)
)
目前我能想到的唯一解决方案是让 AList 成为一个字符串(TEXT),列出所有列表元素的ID。
有没有更好的方法呢?
答案 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)
只需参考您尝试将列表填入的表格中的列表,然后您就可以充分利用这两个世界。