我仍然围绕着SQL的一些基本概念。更多,所以我试图了解我如何连续管理数据列表。它有可能是不同长度的名称,所以我不知道如何为所有数据分别列。
['John','Bill','Henry','Roxanne']
['James','Sandy','May']
我可以将它存储为字符串,但我的直觉说这是一个坏主意。我可以序列化它,但这些列表可能包含数百个项目,我不知道它可以承受多大的压力。
我该如何有效地做到这一点?还有一个更重要的问题,我在哪里可以学习这样的概念?
更新
我希望连续存储的数据示例:
Matthew | 12-07-2013 | ['James','Sandy','May'] | matthew@whatever.com
答案 0 :(得分:1)
创建一个包含两个(或更多)列的第二个表,其中一个(或全部除外)列标识您正在讨论的第一个表中的哪一行[*]。最后一列标识了马修列表中的名称。在这张表中为Matthew创建了3行:James,Sandy和May各一行。
当然可以将名称存储为一个大字符串字段,但如果您不确定数据库本身不需要将它们视为单独的实体,则不应该这样做。即使你现在有信心,你可能会在以后改变主意并且必须解决它。
一个更重要的问题,我在哪里可以学习这样的概念?
任何SQL教程都应该涵盖它。
[*]我无法告诉你如何做到这一点,因为我对你的数据知之甚少。也许“马修”唯一地标识了这一行(名字列表是马修的朋友)。也许“马修”加上约会(而且名单上的名字是Matthew当天与之会面的人)。也许什么都没做,你的第一个表需要一个合成主键,以便第二个表可以引用它。
答案 1 :(得分:1)
我过去所做的(并且不保证这是最有效的方法)是使用第二个表,并将其链接回原始表。
因此,而不是包含如下条目的单个表:
name | date | users | email
Matthew | 12-07-2013 | ['James','Sandy','May'] | matthew@whatever.com
您有两张桌子,一张包含您的主要信息:
name | date | email
Matthew | 12-07-2013 | matthew@whatever.com
和一个链接:
index | name | user
1 | Matthew | James
2 | Matthew | Sandy
3 | Matthew | May
然后你可以根据需要加入。