我正在建立一个mysql数据库来存储公司信息。在其中一个字段中,我需要存储多个值,如创建者的名称。
我知道不会是一个不错的选择,但它会避免创建另一个表来存储几个名字。
关于检索和查询该特定字段的值的问题。
我非常感谢您的输入,即使需要更多代码行,我也能做出不错的选择。
TIA
答案 0 :(得分:0)
三张桌子: 公司,(一般信息公司) 公司创始人,(与公司有关的创始人) 创始人。 (创始人姓名)
如果你想以正确的方式做事,习惯于编写大量代码。
答案 1 :(得分:0)
好吧,就这样做吧。 如果您愿意为更糟糕的解决方案编写更多代码行,那么创建表并不是那么多工作,为什么不只是将精力投入到好的解决方案中。
您是否有理由不想在这方面规范化数据库?
答案 2 :(得分:0)
如果您知道在一个列中存储多个值时出现问题,则不应该这样做。保持数据库规范化,检索和处理数据的问题要少得多。
更多信息:http://en.wikipedia.org/wiki/Database_normalization
对于您的示例,您应使用三个表companies
,persons
,founder
,而founder
链接companies
和persons
的主键在一起。
编辑:SQLfiddle目前似乎有一些问题,所以我不能提供给你一个,但下面是一个例子 - 代码:com1有一个创始人,com2有三个。
create table companies (id, name);
insert into companies (id, name) values (1, 'com1');
insert into companies (id, name) values (2, 'com2');
create table persons (id, name);
insert into persons (id, name) values (1, 'person1');
insert into persons (id, name) values (2, 'person2');
insert into persons (id, name) values (3, 'person3');
insert into persons (id, name) values (4, 'person4');
create table founders (company_id, person_id);
insert into founders (company_id, person_id) values (1,1);
insert into founders (company_id, person_id) values (2,2);
insert into founders (company_id, person_id) values (2,3);
insert into founders (company_id, person_id) values (2,4);