2010-08-17 1 views
2

Я думаю о лучшем способе проектирования базы данных, учитывая следующую ситуацию.MySQL DataBase design Вопрос

  • Есть более 1000 единиц гостиничного номера.
  • В каждом номере гостиничного номера есть список из примерно 100 отдельных предметов с прикрепленным к ним количеством. Инвентарь является стандартным для каждого гостиничного номера. Но количество каждого элемента может быть изменено.

К примеру 3 кружки кофе, 2 полотенца и т.д.

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

что будет лучший способ создания базы данных?

У вас есть таблица каждого уникального элемента, его количество, его идентификатор свойства, его потерянные и поврежденные элементы для каждого идентификатора свойства?

Есть ли лучший способ сделать это?

ответ

3

Таблица номера Таблицы элементов Таблицы содержит ссылки, что номер и элементы:

Rooms 
Number ID 
101  1 
102  2 

Items 
Name ID NumberLost NumberDamaged 
Lamp 1 3   0 
Chair 2 0   1 

Contains 
RoomID ItemID Quantity 
1  1  1 
1  2  3 
2  1  1 
2  2  4 
+0

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

+0

Я очень ценю ответ. Большое спасибо! – Gamak

2
Room[roomID, roomNumber, roomSize] 
Item[itemID, itemPrice, itemName] 
RoomItem[roomID, itemID, quantity, damaged] 

Есть много-ко-многим с комнатой и элементами (называемыми RoomItem). Затем может быть указано количество для предмета в комнате и поврежденный предмет в комнате.

+0

+1 особенно для хранения поврежденного количества по сравнению с RoomItem. (Должно также включать потерянное количество.) –