Вы должны иметь возможность изменять ориентацию визуализированного изображения / вида / объекта с помощью setLocalRotation.
Например, в моем проекте я использовал приведенный ниже код, который делает визуализированное изображение лицом прямо наружу от обнаруженного изображения.
Node cornerNode;
localPosition.set(-0.0f * image.getExtentX(), 0.1f, +0.5f * image.getExtentZ());
cornerNode = new Node();
cornerNode.setParent(this);
cornerNode.setLocalPosition(localPosition);
cornerNode.setLocalRotation(Quaternion.axisAngle(new Vector3(-1f, 0, 0), 90f));
cornerNode.setRenderable(testViewRenderable);
Обычно эмпирическое правило - то, которые никогда не используют значимую информацию в первичных ключах (как Номер социального страхования или штрихкод). Просто автоувеличенное целое число. Однако постоянный данные кажутся - они могут измениться однажды (новое законодательство появляется, и все SSNs повторно вычисляются).
Это - решение между суррогатными и естественными ключами, при этом первым является суррогат (или "технический") и второе, являющееся естественным.
Я пришел к выводу, что необходимо в значительной степени всегда использовать суррогатные ключи. Если Вы используете естественные ключи, они могут измениться, и обновление основных / внешних ключей обычно не является хорошей идеей.
Я пошел бы для первого. Создание уникальных идентификаторов нужно оставить SQL-серверу, и Вам нельзя было создать уникальные идентификаторы автоволшебно ориентированным на многопотоковое исполнение способом, если они - строки. К моему пониманию необходимо ли было бы обработать это сами так или иначе?
Скорость является другим фактором. Контакт с международными значениями всегда будет быстрее, чем строки. Я сказал бы, что существуют другие преимущества перфекта вокруг индексации, которую могло уточнить намного больше человека здравого смысла SQL, чем я ;)
По моему опыту, наличие идентификаторов строки было сбоем.
Ну, я хочу сделать некоторые точки и предложения,
Рассмотрите наличие отдельной таблицы для Типа, скажите с идентификатором столбца и Desc, затем сделайте внешний ключ TypeId в этой таблице. Один шаг вперед для нормализации вещи. Но это не может желательный. Сделайте это, если Вы думаете, что это служит некоторой цели
Создание его, Строка действительно имеет смысл позже люди при размышлении о смещении к UUID. Вы не должны изменять тип данных затем
[Отредактированный]
Я соглашаюсь с Cletus здесь. Тот суррогатный ключ оказался выгодным в некоторых реальных проектах. Они позволяют изменение, и Вы знаете хорошо, что, изменение является единственной константой.
Я лично полагаю, что первый подход далек, намного лучше. Это позволяет программному обеспечению базы данных сделать простые целочисленные сравнения, чтобы найти и отсортировать по ключу, который улучшит операционную производительность таблицы (ВЫБИРАЕТ, сложные СОЕДИНЕНИЯ, ключом ИНДЕКСИРУЙТЕ поиски, и т.д.),
Конечно, я предполагаю, что так или иначе, Вы используете некоторый метод автопостепенного увеличения для создания идентификаторов - или последовательность, AUTO_INCREMENT или что-то подобное. Меня польза, и не создают тех, которые в коде Вашей программы, хорошо?
Я предпочитаю Пример 1 по причинам, которые Вы упомянули и единственный аргумент, что я могу думать для использования Примера 2, то, при попытке разместить идентификаторы строки от существующей базы данных (довольно распространенной) однако даже в том сценарии, я предпочитаю использовать следующий подход.
==AssetId(PK)==Type========DeprecatedId====
12345 "Manhole" "MH64247"
155415 "Pit" "P6487246"
Если Ваши активы уже имеют уникальные естественные идентификаторы (такие как сотрудники с их идентификаторами сотрудника), используйте их. Нет никакого смысла создающего другой уникальный идентификатор.
С другой стороны, если нет никакого естественного уникального идентификатора, используйте самый короткий, который Вы можете это гарантировать достаточным уникальным ключам для Вашего ожидаемого размера таблицы (таким как Ваше целое число). Это потребует меньшего дискового пространства и вероятно быстрее. И, кроме того, если Вы должны для использования основанного на операция со строками ключа позже, это - простое задание замены:
Некоторые из этих шагов могут быть проблематичными на определенном DBMS, возможно, требуя, чтобы таблица, unload/reload, удалила целочисленные столбцы первичного ключа, но та стратегия в основном, что требуется.
I would choose a numeric primary key for performance reasons. Integer comparisons are much cheaper than string comparisons, and it will occupy less space in the DB.
Единственное преимущество примера 2 состоит в том, что вы можете легко определить только по первичному ключу, к какой строке какой таблицы применяется этот ключ. Идея хороша, но будет ли она полезна, зависит от ваших стратегий ведения журнала и сообщений об ошибках. Вероятно, у него есть недостаток производительности, поэтому я бы не стал его использовать, если вы не можете назвать некоторые конкретные причины, по которым его использовать.
(Вы можете получить это преимущество также, используя глобальную последовательность для генерации числовых ключей или используя другие числовые диапазоны, последние цифры или что-то еще. Тогда у вас не будет недостатков в производительности, но, возможно, вы не так легко найдете таблицу.)