|
2 / 2 / 0
Регистрация: 20.01.2018
Сообщений: 8
|
|
Поле БД, типа enum, которого может не быть20.03.2018, 10:11. Показов 1470. Ответов 4
Метки нет (Все метки)
Здравствуйте!
Например, есть класс человек, у него есть ф.и.о. Ну и как бы нормально - одна запись - один чел. Теперь представим, нет у человека отчества. Тоже ничего, просто пустая строка, "". Но теперь представим, отчества перечислены в enum, и могут принимать только из конкретных значений. Теперь как? Создать в enum что то типа Otchestvo.NULL или сделать отдельную таблицу "Отчества"? Как на практике обычно делается? Спасибо!
0
|
|
| 20.03.2018, 10:11 | |
|
Ответы с готовыми решениями:
4
"В поле может быть введено только одно слово, пробелы могут быть или не быть с начала слова и в конце" Только константное статическое поле НЕ МОЖЕТ быть поле членом класса ! Добавить новое поле типа enum с помощью запросов SQL |
|
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
|
||
| 20.03.2018, 10:40 | ||
|
По поводу ограниченного количества значений. Если их всего несколько, то можно перечислить в constraint (например, в Oracle check constraint). Если много, то лучше иметь таблицу-справочник, из которой пользователь в клиентской программе будет выбирать нужное.
1
|
||
|
2 / 2 / 0
Регистрация: 20.01.2018
Сообщений: 8
|
|
| 20.03.2018, 12:24 [ТС] | |
|
Это Sqlite и язык java. Я наверное сбил с толку. Вариантов значения примерно семь. Но возможна ситуация, когда оно не задано. Перекладывая на пример с отчествами, в enum задаю варианты: "Иванович", "Петрович" и "Без отчества". Немного будет сбивать с толку. Выборка:
Петров Иван Иванович Сидоров Петр Без отчества Придется делать проверку, чтоб такого не было, не очень изящное решение на мой взгляд. На ум приходит создать отдельную таблицу для отчеств. Но что если таких аттрибутов не только одно отчество? А еще ИНН у человека, где есть значение ИНН, но его может не быть, адрес по прописке,один единственный конкретный, либо его нет... И так далее. Обратите внимание, что работать приходится со значениями, которое есть только одно, либо его нет вовсе. Появляется множество таблиц, в которой есть только одно поле! Когда все это можно было бы положить в одну таблицу. Один класс, одна функция получить из базы, одна функция положить в базу. Но при этом придется работать с null, я и боюсь, где нибудь это приведет к падению программы. Добавлено через 42 минуты Мне посоветовали использовать null, а чтобы корректно с ним работать использовать типы-обертки (это java). Сейчас попробую... Сделаю одну таблицу, буду прописывать null если не задано значение.
0
|
|
|
476 / 239 / 114
Регистрация: 12.05.2016
Сообщений: 647
|
|
| 22.03.2018, 20:09 | |
|
Не понимаю, зачем все себе тщательно и с упорством, достойным восхищения, раскладывают грабли с этим enum.
Чем не угодили отдельные таблицы со справочниками? Простой, железобетонный подход. Не нарушает принципы реляционных БД. Думаете база сломается от того, то вы в неё пару сотен лишних таблиц поместите? Ей по барабану, сколько в ней таблиц.
1
|
|
|
2 / 2 / 0
Регистрация: 20.01.2018
Сообщений: 8
|
|||||||||||
| 22.03.2018, 21:20 [ТС] | |||||||||||
|
Да, можно хоть сотню, только на каждую таблицу надо свою функцию добавить запись и функцию для чтения. Хотя, возможно, можно сделать проще, я просто не знаю как. Сейчас делаю так:
Сначала класс
0
|
|||||||||||
| 22.03.2018, 21:20 | |
|
Помогаю со студенческими работами здесь
5
Вызвать метод, которого может не быть) Поле не может быть изменено
Дан текст, каждый символ которого может быть малой буквой Разветвление switch, может ли переменная быть любого типа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|