SQL Что ты думаешь лучше?Все на одном месте или отдельно - PullRequest
0 голосов
/ 08 февраля 2011

Какой из них вы считаете лучше?И почему?

Мне всегда нужны все данные, никогда не случится так, что мне нужно только имя, а не "tool1, tool2" ...

1) Допустим, у меня естьтаблица "Woods" и "WoodsData"

Внутри "Woods" у меня есть:

  • id (автоинкремент)
  • имя (название дерева)
  • когда (когда был вырублен лес)

И другой стол "WoodsData"

  • id (который связан с id леса)
  • tool1 (инструмент № 1, используемый для вырубки дерева, true или false)
  • tool2
  • tool3
  • tool4
  • tool5
  • раз (время использования инструмента)

, поэтому выбор будет здесь, если объединить две таблицы!

2) Одна таблица "Вудс", которая выглядит следующим образом:

  • id (автоинкремент)
  • имя (название дерева)
  • когда (когда рубили дерево)
  • tool1 (инструмент № 1, используемый для вырубки дерева, true или false)
  • tool2
  • tool3
  • tool4
  • tool5
  • раз (время использования инструмента)

ПРИМЕЧАНИЕ: "tool1, tool2, tool3, tool4, tool5" должен перейти к 50 из них, я простоне хотел писать их все здесь: P

Ответы [ 4 ]

7 голосов
/ 08 февраля 2011

Я бы пошел с:

Woods

  • id (автоинкремент)
  • имя (название дерева)
  • когда (когда рубили дрова)

Инструменты

  • id (автоинкремент)
  • имя (название инструмента)

А затем распределительная таблица, показывающая, какие инструменты были использованы для каких лесов

Woods_Tools

  • wood_id (внешний ключ к Woods.id)
  • tool_id (внешний ключ для Tools.id)
3 голосов
/ 08 февраля 2011

Оба неверны, вы должны нормализовать данные: «tool1» к «tool50» должно быть «tool» в дополнительной таблице.Прочитайте что-нибудь о нормализации.

2 голосов
/ 08 февраля 2011

Мой совет - все положить в одну таблицу. Таким образом, при вводе у вас будет только один набор данных.

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

Пока вам действительно нужны все данные (tools1..50) каждый раз, когда вы выбираете из таблицы, тогда я думаю, что лучше использовать одну таблицу.

Лучшее решение - попробовать оба способа и измерить результаты. Это может не иметь значения в любом случае.

1 голос
/ 08 февраля 2011

Для большей нормализации разделите записи «инструмента» в третьей таблице.

WoodsTool:

  • id (основной)
  • woodsdata_id (внешний ключ,относится к первичному ключу WoodsData)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...