2011-12-12 3 views
0

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

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

Идея заключается в том, что у вас есть несколько комбинированных коробок на форме, где вы выбираете отель, который дает соответствующие этажи в следующем cb. Выбран пол, и области, связанные с этим полом для данного отеля, перечислены и так далее, пока последний cb не даст предметы.

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

Помогите пожалуйста

+1

Do у вас есть треска Мы могли бы посмотреть? – bvd

+0

Это может немного помочь, если вы точно объясните, с какой частью у вас были проблемы. Например, возможно, у вас возникли проблемы с реагированием на изменение в поле со списком? Или это может быть запись SQL-оператора с несколькими таблицами или присоединение к нескольким условиям и т. Д. –

+0

У меня возникли проблемы с пониманием того, какую информацию нужно поместить в таблицы, чтобы они могли быть связаны. Отель 1 имеет уровни 1-5, как и отель 2, но отель 3 имеет уровни 1-6. Если это все, я буду в порядке, но мне нужно указать разные области, которые ели на каждом уровне для каждого отеля. Например, в отеле 1 есть ресторан на уровне 1, но в других отелях нет. Поэтому мне нужно выбрать гостиницу 1, затем уровень 1, а затем выбрать вариант ресторана, тогда как если бы выбрали гостиницу 2 или 3, то ресторан 1 уровня не должен отображаться. – Batchy

ответ

0

Я не вижу, где у вас есть много-много отношений вообще. Таблица отелей относится к таблице этажей, относящейся к таблице областей, относящейся к таблице элементов, относится к таблице изделий. Но если вы хотите моделировать многие отношения, используйте таблицу ссылок.

Так что, стол гостиницы с гостиницей, как ПК, и все остальное, что вам нужно в целом относительно отеля. Настольный стол с напольным покрытием и любой другой информацией, относящейся к полу. Стол HotelFloor, который содержит только hotelid и floorid.

Но вам действительно нужна эта структура, только если пол, площадь и т. Д. Не будут уникальными для конкретного отеля.

0

Я думаю, вы можете переусердствовать. Для меня все эти отношения - один-ко-многим.

Я думаю, что часть вашего замешательства заключается в том, что вы думаете о Гостином этаже только с точки зрения одного из его свойств, а именно уровня. Таким образом, вы думаете, что отель A имеет этаж 1 уровня и отель B имеет этаж 1-го уровня, поэтому между этажами и отелями существует много-много отношений. Это было бы правдой, если бы единственным свойством было его уровень. Но, как вы уже сказали, каждый этаж каждого отеля имеет свой собственный набор площадей. Таким образом, уровень 1 этаж каждого отеля не может быть представлен одной записью.

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

Реальный пример делает этот кристально чистый:

  • Вы входите в лифт в отеле A и нажмите 3.
  • Ваш друг входит в лифт в отеле B и прижимает 3.

Если модель «многие ко многим» была правдой, вы и ваш друг будете стоять бок о бок, когда вы выйдете из лифта. Очевидно, что это не так, поэтому отношение «один ко многим» имеет смысл.

По этой же причине все отношения в вашем примере являются «один ко многим».Они могут быть смоделированы таким образом:

Отели: (PK) HotelID и т.д.
Полы: (PK) FloorID (FK) HotelID, уровень и т.д.
Области: (PK) Areaid (FK) FloorID и т.д.
Элементы: (PK) ElementID (FK) Areaid и т.д.
Элементы: (PK) ItemID (FK) ElementID и т.д.

+0

Я не уверен, что 'Элементы' и' Элементы 'не являются m: n; некоторые из других отношений могут быть 0..1: m («нуль-один-ко-многим»). Я люблю ваш реальный пример, хотя :) – onedaywhen

+0

Хорошая точка. Не зная, что на самом деле представляют элементы «Элементы» и «Элементы», трудно сказать точно. – mwolfe02

Смежные вопросы