Ниже приведено несколько советов для определения требующихся вам полей:

Определите отношение каждого поля непосредственно к субъекту таблицы

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

Не включайте в таблицу производные и вычисляемые данные

В большинстве случаев нет необходимости хранить результат вычисления в таблицах. Вместо этого мы можете заставить Visual FoxPro произвести необходимые расчеты, когда вы пожелаете увидеть результат. Например, форма заказа Tasmanian Traders отображает расширенную цену для каждой строки заказа в базе данных Tasmanian Traders. Однако, вы не найдете ни в одной из таблиц Tasmanian Traders ни одного поля, содержащего поле промежуточного итога. Вместо этого, таблица Order_Line_Items включает в себя поле количества, которое хранит единицы товара в ордере для каждого индивидуального продукта, наряду с ценой для каждой заказываемой единицы. Использя эти данные, Visual FoxPro рассчитывает подсумму каждый раз, когда вы печатаете форму заказа. Сами подсуммы не требуют хранения в таблице. Для получения более подробной информации, смотрите Анализ требований к данным.

Включите всю информацию, которая вам необходима

Достаточно легко можно пропустить важную информацию. Вернитесь к информации, собранной вами в первом шаге процесса раз. Посмотрите на ваши бумажные формы и отчеты с тем, чтобы убедиться, что вся требуемая информация, собранная ранее, включена в ваши таблицы или может быть произведена из данных. Подумайте о вопросах, которые вы будуте спрашивать у Visual FoxPro. Может ли Visual FoxPro найти все ответы на ваши вопросы, базируясь на информации в ваших таблицах? Как вы идентифицируете поля, которые будут хранить уникальные данные, так как, например, customer ID? Какие таблицы включают в себя информацию, которую вы должны объединить в одном отчете или форме? Для получения более подробной информации, смотрите Использование полей первичного ключа и Идентификация отношений.

Храните информацию в виде ее мельчайших логических частях

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

Пример

Tasmanian Traders продает договорные продукты со всего мира. Работники используют отчет Products On Order для хранения отслеживания продуктов, помещенных в заказ.

Отчет для отслеживания инвентуры товаров

FoxPro Products OnOrder

Этот отчет показывает, что таблица Products, которая содержит факты о продаже товаров, должна включать поля для имени продукта, его количества в единицах на складе, и количестве заказанных единиц среди всего прочего. Но что говорится об имени поставщика и телефонном номере? Для производства отчета, Visual FoxPro необходимо знать, какой поставщик поставляет каждый проддукт.

Черновик таблицы поставщиков, содержащие поля для имени поставщика и его номере телефона

FoxPro Product Supplier Sample

Вы можете разрешить эту ситуацию без хранения чрезмерных данных в ваших таблицах, путем создания таблицы поставщиков - Supplier - с отдельными полями для его имени и номера телефона. Для получения более подробной информации, смотрите Использование полей первичного ключа.

Смотрите также