Хорошая практика для хранения длинных строк как полей - PullRequest
0 голосов
/ 07 ноября 2018

Я создаю базу данных sql с таблицей, содержащей ответы на вопросник. Вопросы представляют собой полные предложения (около 150 символов в каждом), и я хочу знать, как лучше всего сохранить эту информацию в виде полей. Я пока не знаком с SQL, но вижу два варианта:

  1. установите каждый вопрос в виде числа (1, 2, 3, 4 ...) и получите отдельную таблицу, содержащую фактические вопросы в качестве данных, которые связаны с номером в первой таблице.

  2. некоторый метод в CREATE TABLE, который позволяет вам установить поле как предложение. Я бы хоть кавычки работал, а они нет.

EDIT:

быстрый пример того, что я пытаюсь сделать:

CREATE TABLE survey(
    index_id INT PRIMARY KEY,
    'between 1 and 10, how do you feel about the transparency of the scientific community?' VARCHAR(5)
);

Спасибо!

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Как правило, по умолчанию используется VARCHAR(255) с кодировкой utf8mb4. Если вам нужны подробные данные, такие как эссе, несколько абзацев и т. Д., Используйте TEXT или LONGTEXT.

Это действительно проблема с одним столом:

CREATE TABLE questions (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  questionnaire_id INT NOT NULL,
  num INT NOT NULL DEFAULT 0,
  question VARCHAR(255) NOT NULL
);

Где, если вы хотите, вы можете создать несколько анкет, добавив другую таблицу анкет, или просто использовать это число как есть для разделения вопросов.

0 голосов
/ 07 ноября 2018

Вы смешиваете данные в таблице и создаете таблицу.

При создании таблицы вы определяете структуру таблицы

Затем вы можете добавить данные в таблицу

Затем вы можете запросить таблицу.

Например, создайте таблицу.

create table questionanswer (
  questionnumber integer,
  answer varchar(200)
)

добавить данные в таблицу

insert into questionanswer (questionnumber, answer)
   values (1, 'election day')

запросить таблицу значений

select answer
from questionanswer
where questionnumber = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...