我想知道如何在表中存储每个ID的ID索引列表。这些将有效地在ID之间形成“关系”。这里的主表至今:MySQL数据库设计问题 - 存储列表/索引数组
表主:
ID,整数,主键
名,VARCHAR
text_info_1,VARCHAR
text_info_2, varchar
现在对于每一行,都会有一些其他行ID的列表,这些列表会告诉我一行与下一行的关系。例如,ID为5的行可能与ID为6,7,9,25,...等相关。
这里是我考虑的选择:
创建一个新的列作为文本字段,并存储这些整数值的序列化列表。然后,只要我想要它们就可以反序列化。
用列relation_id(int auto increment primary key),name1,name2,[和可选的其他字段指定关系类型,这将是很好的]创建一个名为“关系”的新表。
我觉得选项1有点破解。我以前做过,它可以工作,但也许选项2更好的设计?
虽然我很担心车速。使用选项1,我可以只做SELECT关系从主WHERE id = $ id,然后反序列化结果并使用整数索引来创建我的数组。但是对于选项2,我将不得不浏览一个会多次(10倍或更多)的表,然后执行“SELECT name1,name2 FROM relations”。
速度是我的首要任务。我不确定哪一个更适合太空,但我会很好奇的发现。
那么我应该选择哪个选项?我还没有考虑过其他不错的选择吗?我也很感谢数据库设计方面的一些好的一般指针!
谢谢你一堆。