что плохо в этой структуре схемы таблицы - PullRequest
0 голосов
/ 09 февраля 2012

У меня есть следующая структура таблицы:

`CREATE TABLE "pages" (
   "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
   "title" varchar(255),
   "body" varchar(255),
   "author" varchar(255), 
   "email" varchar(255), 
   "reference" varchar(255),
   "created_at" datetime,
   "updated_at" datetime);`

Эта структура таблицы плохая?

edit-1

Его база данных sqlite, которую я использую.

Ответы [ 3 ]

3 голосов
/ 09 февраля 2012

На основании предоставленной вами ограниченной информации.Если стол соответствует вашим потребностям, то нет, это не плохо.

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

Вы можете сделать то же самое с письмом, если у вас будет несколько писем для каждого автора.

0 голосов
/ 10 февраля 2012

Вы не дали нам много, чтобы продолжить.Но если у вашего проекта есть технический руководитель, который ожидает, что вы соответствуете определенным структурным стандартам, должна быть книга, бумага, файл или веб-страница, которая расскажет вам, что от вас ожидают.

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

Все столбцы varchar () имеют одинаковую длину.Это, вероятно, не то, что вы хотите.

Я собираюсь догадаться, что «страницы» относится к веб-страницам.Если это так, вы , вероятно, хотите, чтобы заголовок был уникальным.(И вы , вероятно, хотите, чтобы оно было длиной менее 255 символов.)

Если «электронная почта» означает текущий адрес электронной почты «автора», то существует транзитивная зависимость между «автором» и"Эл. адрес".(Это еще не в 3NF.) Если «электронная почта» означает адрес электронной почты «автора» на момент публикации, вероятно, существует многозначная зависимость между «автором» и «электронной почтой».(Так что это еще не в 4NF.)

Вы probaby тоже не хотите, чтобы адрес электронной почты позволял использовать 255 символов.

Столбцы "create_at" и "updated_at"о строке, а не о" странице ".Я предпочитаю хранить данные о строке в отдельной таблице;это уменьшит размер реальных данных, сузит таблицу, увеличит количество строк на страницу и увеличит скорость.

0 голосов
/ 09 февраля 2012

Если это не удалось, это может быть из-за пробела между "v" и "archar" во 2-й строке?Хотя это может быть просто ошибка вырезания / вставки.

...