Рекомендация модели счета - PullRequest
0 голосов
/ 04 октября 2011

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

В счете есть раздел для клиентов.Клиент может быть выбран из выпадающего меню или может быть введен непосредственно в текстовое поле.Допустим, это просто разовая покупка, и клиент никогда не вернется.Должны ли я иметь эти два столбца: client_id и client_field, чтобы любой из этих двух можно было заполнить?Отрицательной стороной является то, что много client_field будет пустым.Или я не должен использовать client_field и просто добавить нового клиента, даже если подумал, что клиент будет использоваться только один раз?

Ответы [ 2 ]

1 голос
/ 04 октября 2011

Будьте последовательны и используйте отдельную модель клиента и client_id даже для клиентов, которые появляются только один раз. Если у вас есть и client_id, и client_model, у вас будет дополнительная сложность:

  • Ваша проверка должна будет проверить оба и убедиться, что все согласовано.
  • Вам нужно будет o.client.try(:name) || o.client_field и тому подобное повсюду только для отображения данных.
  • Если вы в будущем измените структуру своих записей о клиентах, вам придется переформатировать свою «таблицу в таблице» client_field kludge.
  • Любая основанная на базе данных отчетность перейдет от простого SQL к чудовищности LEFT JOINs и операторов CASE.

А это всего лишь пара вещей с моей головы.

Если вас беспокоит выпадающий список с большим количеством записей & mdash; и вы должны быть обеспокоены любым выпадающим списком, содержащим более ~ 20 записей & mdash; затем просто введите автозаполнение ввода текста или ограничьте выпадающий список до ~ 20 клиентов и используйте автозаполнение ввода текста для остальных (или, возможно, даже комбинированный блок на основе JavaScript); есть большая вероятность, что выпадающий список даже не будет использоваться вашими пользователями, бухгалтерами и другими людьми, которые часто вводят данные и выставляют счета, часто ненавидят необходимость тянуться к мышке.

1 голос
/ 04 октября 2011

Что-то не так с наличием поля автозаполнения, в котором, если оно отправлено без соответствующего идентификатора, вы просто создадите клиент и свяжете его с ним?

Это то, что ожидается с точки зренияпользователь и то, как приложения, такие как QuickBooks, работали годами.

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