Сокращение количества атрибутов, хранящихся в таблице - PullRequest
2 голосов
/ 24 марта 2011

У меня проблема с созданием таблицы для базы данных.Я хочу записать много статусов для каждого фермера, например, фермер будет выполнять много процедур в рисовых полях и иметь около 26 процедур от выращивания до сбора урожая.

Таким образом, каждый фермер должен соблюдать график каждой процедуры в соответствии с датами, установленными помощником по сельскому хозяйству.Моя проблема в том, как я могу записать статус этой процедуры, чтобы записать, следует ли фермеру графику или нет?Сейчас я использую 26 процедур в качестве атрибутов для таблицы действий, поэтому в таблице действий у меня есть атрибуты

farmerID, status1 (for activity 1 eg: Cultivation) , 
status2 (for activity 2 eg: fertilization), 
status 3 

и так далее до статуса 26 ... так ли это правильно?Мой лектор говорит, что это неправильно, потому что там так много атрибутов.Можете ли вы помочь мне решить эту проблему?Я не могу больше думать об этом.

Ответы [ 3 ]

3 голосов
/ 24 марта 2011

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

tbl_farmer - farmerId

tbl_status - statusId - имя (т.е. совершенствование и т. д.)

tbl_activity - farmerId - statusId

И каждый раз, когда фермер выполняет обновление статуса, вы помещаете запись в tbl_activity. В основном tbl_activity является справочной таблицей

0 голосов
/ 24 марта 2011

enter image description here

0 голосов
/ 24 марта 2011

Альтернативным подходом было бы присвоение каждому виду деятельности (процедуры) идентификатора, а вместо многих столбцов - только три.

farmer_id
activity_id
status

Предполагая, что ваши действия хранятся в отдельной таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...