Мои первичные индексы являются уникальными ссылочными номерами как 002 345 и 000023.
Если я форматирую их как целые числа, я освобождаю свой нуль. Они должны быть 6 цифрами.
Я могу использовать CHAR? Мне не нужны никакие автоматические инкременты.
Убедитесь, что оболочка должна проанализировать весь файл перед его выполнением:
#!/bin/ksh
{
all the original script here
}
Это делает трюк.
Между прочим, с Perl (и я предполагаю Python) программа анализирует весь файл перед его выполнением, точно так, как здесь рекомендуется. Вот почему вы обычно не сталкиваетесь с проблемой с Perl или Python.
-121--2938603- Вас может заинтересовать большая (только OS X) категория NS (приписанная) последовательность + Geometrics
Джерри Кринока, которая предназначена для выполнения всех видов измерений последовательностей, включая то, что вы ищете.
Да, можно использовать столбец CHAR
в качестве первичного ключа в MySQL.
Однако вы должны рассмотреть возможность сохранения ваших номеров в виде целых чисел и применения первых 0 на уровне приложения.
Можно также рассмотреть возможность использования суррогатного ключа , не полученного из ссылочного номера или любых других данных приложения. Основным преимуществом будет то, что ваши записи не потеряют своего «дескриптора», если ссылочный номер заказа когда-либо изменится. Вы также получите дополнительную производительность целочисленного индекса в качестве положительного побочного эффекта.
Наконец-то нашел ответ: -) Я думаю, что не был так далеко в моей первой попытке. Вот оно: (написано для scala 2,8)
trait MatrixElement[T] {
def +(that: T): T
def *(that: T): T
}
object MatrixElement {
implicit def intToMatrixElement(x : Int) = new MatrixElement[Int] {
def +(y : Int) = x + y
def *(y : Int) = x * y
}
implicit def doubleToMatrixElement(x : Double) = new MatrixElement[Double] {
def +(y : Double) = x + y
def *(y : Double) = x * y
}
implicit def complexToMatrixElement(x : Complex) = new MatrixElement[Complex] {
def +(y : Complex) = x + y
def *(y : Complex) = x * y
}
}
class Matrix[T <% MatrixElement[T] : ClassManifest ](d: Array[Array[T]]) {
def *(that: Matrix) = ..// code that uses "+" and "*" on the elements
}
Теперь я могу делать такие вещи, как:
scala> new Matrix(Array(Array(1,0),Array(0,1)))
res0: Matrix[Int] =
1 0
0 1
scala> new Matrix(Array(Array(new Complex(0),new Complex(1)),Array(new Complex(1),new Complex(0))))
res9: Matrix[Complex] =
(0.0,0.0i) (1.0,0.0i)
(1.0,0.0i) (0.0,0.0i)
-121--3950536- Вы также можете проверить NPanday (это проект, в котором я участвую). Хотя ему все еще требуется определенная работа для более тесной увязки с передовым опытом Maven, он является наиболее полной и активной альтернативой, доступной в настоящее время. Одной из уникальных функций является наличие надстройки Visual Studio для создания правильного файла pom.xml
из среды IDE.
Я только что протестировал на локальном MySQL - он работает отлично. Но для некоторого повышения производительности я бы пошел на целочисленный первичный индекс.
Вы можете использовать номера заказов в качестве первичного ключа. Но однажды ваш начальник позвонит вам и скажет, что номер заказа, отправленного вашему самому важному клиенту, был напечатан как 002346
, а не 002345
, и что они не могут получать платежи, пока эта ошибка не будет исправлена в вашей системе...
Вам также следует рассмотреть возможность использования целочисленного первичного ключа, так как это сэкономит место и соединения будут выполняться быстрее.