Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Несколько правил #8

Open
mikanoz opened this issue Nov 10, 2014 · 3 comments
Open

Несколько правил #8

mikanoz opened this issue Nov 10, 2014 · 3 comments

Comments

@mikanoz
Copy link

mikanoz commented Nov 10, 2014

  1. В базе данных всем полям необходимо давать значение по умолчанию.
    • Иначе будет NULL
    • Это в первую очередь нужно для того, чтобы контролировать состояние данных (если данные не придут, то должно быть установлено внятное значение)
    • NULL можно только в текстовых полях, в других полях NULL нужно использовать только тогда, когда это является частью бизнес-логики (не просто поле не заполнено, а именно NULL - значение отсутствует, что не равно пустой строке или "0" для целых чисел) - что происходит крайне редко.
  2. При коммите обязательно указывать номер задачи.
    • Таким образом коммит привязывается к конкретной задаче (неконкретные коммиты этот не очень хорошо, потом будет концов не найти, зачем это делалось и в связи с чем).
    • Это общее правило действует для большинства популярных таск-трекеров
    • Сейчас после создания задачи я сделаю к ней коммит и это будет видно в истории задачи.
@mikanoz
Copy link
Author

mikanoz commented Nov 10, 2014

Как видите, комментарий к комиту начинается с "решетки" и номера задачи. Таким образом задача связалась с коммитом, а коммит - с задачей.

@Goros6
Copy link
Owner

Goros6 commented Nov 12, 2014

Поля для которых не установлено nullable, при создании записи в таблице не получают NULL. По крайней мере в MySQL.
null

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

@mikanoz
Copy link
Author

mikanoz commented Nov 13, 2014

Поля для которых не установлено nullable, при создании записи в таблице не получают NULL

Хорошо, я позабыл об этом - можно и так.

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

  • Присутствие NULL не дает никакой пользы, если не участвует в логике (когда "пустая строка" и "отсутствие значения" различаются и логически необходимы, но это очень редко бывает). Пример: 0 - мужчина, 1 - женщина, NULL - пол не определен. Пример плохой, т.к. правильнее 0 - пол не определен, 1 - мужчина, 2 - женщина и т.п.
  • А чтобы был порядок, нужно везде делать по общему принципу, если (см. предыдущий пункт) не потребуется специальное исключение. Либо везде NULL (что менее "правильно"), либо везде внятные значения по умолчанию (пустая строка, ноль - более "правильно").

@mikanoz mikanoz closed this as completed Nov 13, 2014
@mikanoz mikanoz reopened this Nov 13, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants