2015-06-03 4 views
-1

Я создаю базу данных mysql для хранения информации о компаниях. В одном из полей мне нужно сохранить несколько значений, таких как имя учредителей.Несколько значений в одном поле mysql

Я знаю, что это не будет хорошим выбором, но это позволит избежать создания другой таблицы только для хранения нескольких имен.

Я имею отношение к вопросу о получении и запросе значений в этом конкретном поле.

Я очень ценю ваш вход, так что я могу сделать хороший выбор, даже если требуется больше строк кода.

ТИА

+2

Хммм, вы знаете правильный ответ, но не хотите делать это правильно. Зачем кому-либо пытаться ответить? –

+2

создайте другую таблицу. Вы найдете дополнительные возможности и преимущества, когда ваши данные нормализуются соответствующим образом. – rwhite35

+2

Это называется нормализацией, привыкайте к ней! –

ответ

0

Поскольку вам известно о проблеме при хранении нескольких значений в одном столбце, вы не должны этого делать. Сохраняйте нормализацию базы данных, и у вас будет гораздо меньше проблем с получением и работой с вашими данными.

Дополнительная информация: http://en.wikipedia.org/wiki/Database_normalization

Для примера, вы должны использовать три таблицы companies, persons, founder, а founder ссылки первичные ключи companies и persons вместе.

Редактирование: SQLfiddle, похоже, имеет некоторые проблемы на данный момент, поэтому я не могу предоставить вам один, но heres пример-код: 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); 
0

три таблицы: Компании, (Общая информация компании) CompanyFounders (Учредители, подключенные к компании) Основатели. (ФИО учредителей)

Привыкание к написанию большого количества кода, если вы хотите сделать что-то надлежащим образом.

0

Ну, просто сделайте это правильно. Не так много работы для создания таблицы, если вы хотите написать больше строк кода для худшего решения, почему бы просто не инвестировать энергию в хороший.

Есть ли причина, по которой вы не хотите нормализовать свою базу данных в этом отношении?

+0

Ты прав.... –

Смежные вопросы