Лучший способ сохранить теги в таблице SQL-сервера?

Ошибка, которую я нашел, состоит в том, что вы используете нечетные массивы для вычисления четных чисел.

for (var y = 0; y < arrayOdd.length; y++) {
      sumEven += arrayEven[y];
    }

//Variable and array declaration
var arrayNum = []; //Create an array with no size
var arrayEven = []; //Array to hold even numbers
var arrayOdd = []; //Array to hold odd numbers
var i; //Variable to store the index of arrayNum() above
var NUM_INPUTS; //Variable to store array size which is the number of elements
var sumOdd = 0.0; //variable to store the sum if the odd numbers
var sumEven = 0.0; //variable to store the sum if the odd numbers
var avgO = 0.0;
var avgE = 0.0;

NUM_INPUTS = parseInt(prompt("Enter the number of inputs you need: ")); //Ask the user to specify size of the array
//loop for entering values into the array
for (i = 0; i < NUM_INPUTS; i++) {
  arrayNum.push(parseFloat(prompt("Enter the numbers: " + (i + 1))));
  //Check whether a number is odd and add it to arrayOdd[]
  if ((arrayNum[i] % 2) === 1) {
    arrayOdd.push(arrayNum[i]);
    for (var x = 0; x < arrayOdd.length; x++) {
      sumOdd += arrayOdd[x];
    }
    //calculate the sum of odd numers
    avgO = sumOdd / arrayOdd.length;
  }
  //Check whether a number is eve and add it to arrayEven[]
  else {
    arrayEven.push(arrayNum[i]);
    for (var y = 0; y < arrayEven.length; y++) {
      sumEven += arrayEven[y];
    }
    //sumEven+=arrayEven[i]; //calculate sum of even numbers
    avgE = sumEven / arrayEven.length;
  }
}

//Output results
document.write("All numbers in the array are: " + arrayNum);

document.write("<br/>All even numbers in the array are: " + arrayEven);
document.write("<br/> The sum of all even numbers is: " + sumEven + " and average of the even numbers is: " + avgE);

document.write("<br/>");
document.write("<br/>All odd numbers in the array are: " + arrayOdd);
document.write("<br/> The sum of all odd numbers is: " + sumOdd + " and the average of the odd numbers is " + avgO)

15
задан Bruno 28 September 2008 в 04:03
поделиться

4 ответа

Зависит от двух вещей:
1) сумма отмечает/отмечает записи
2), Есть ли у Вас религиозное мнение о нормализации :-)

, Если контакт с очень большими объемами данных, я не предложил бы иметь таблицу 'Tags', отображающуюся varchar, оценивает целочисленным идентификаторам затем вторую таблицу, отображающую отмеченные записи на их идентификаторы тега. Я предложил бы реализовать это сначала, затем проверить, не удовлетворяет ли это Ваши потребности производительности. В этом случае сохраните единственную таблицу с идентификатором для теговой строки и фактическим текстом тега, но в этом я предложил бы, чтобы Вы использовали символьный столбец, поскольку это уничтожит Ваш запрос, если оптимизатор сделает полное сканирование таблицы против большой таблицы с varchar столбцом.

14
ответ дан 1 December 2019 в 02:38
поделиться

Некоторые идеи и тесты только для Вас: http://tagging.pui.ch/post/37027746608/tagsystems-performance-tests

6
ответ дан 1 December 2019 в 02:38
поделиться

Используйте таблицу тегов с самым маленьким допустимым первичным ключом. Если существует меньше чем 255 использования тегов байт (tinyint) или иначе слово (smallint). Чем меньший ключ, тем меньший и быстрее индекс на внешнем ключе в основной таблице.

4
ответ дан 1 December 2019 в 02:38
поделиться

Нет, это обычно - плохая идея поместить несколько частей данных в единственном поле. Вместо этого используйте отдельную таблицу Tags (возможно, только с TagID и TagName) и затем, для каждой записи, укажите на TagID, связанный с ним. Если запись будет связана с несколькими тегами, то у Вас будут дублирующиеся записи с единственной разницей быть TagID.

преимущество здесь состоит в том, что можно легко запросить тегом, записью, и поддержать таблицу Tags отдельно (т.е. что, если имя тега изменяется?).

3
ответ дан 1 December 2019 в 02:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: