1

リゾートデータベースとバックエンドを作成しています。

このバックエンドにより、管理者は新しいリゾートを作成し、リゾートに含まれる設備を指定できます。

アメニティ : テニスコート、プールなど

簡単ですね。私が直面している問題は、各アメニティに [近く] または [場所] という属性が必要なことです。

私が考えている方法は次のとおりです。

CREATE TABLE IF NOT EXISTS `amenity_resort_assn` (
  `amenities_id` int(10) unsigned NOT NULL,
  `resorts_id` int(10) unsigned NOT NULL,
  PRIMARY KEY (`amenities_id`,`resorts_id`),
  KEY `IDX_amenityresortassn_1` (`amenities_id`),
  KEY `IDX_amenityresortassn_2` (`resorts_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `resorts` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
   PRIMARY KEY (`id`),
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT ;


CREATE TABLE IF NOT EXISTS `amenities` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
  `amenities_onsite_id` int(10) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  KEY `IDX_amenities_1` (`amenities_onsite_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT ;


CREATE TABLE IF NOT EXISTS `onsite_type` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `IDX_amenitiesonsitetype_1` (`name`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT;
4

1 に答える 1

1

「場所」と「近く」以外に、いくつかの異なるオンサイト属性を持つ可能性を開いたままにしておくのは正しいことです. 後で「20 マイル以内」または「お部屋内」を追加するかもしれません。

したがって、テーブルを次のようにすることをお勧めします。

RESORTS: id, name
AMENITIES: id, name
ONSITE_TYPE: id, name
AMENITY_RESORT_ASSN: id, resorts_id, amenities_id, onsite_type_id

これは、これらの物事の関係が実際の生活の中でどのように機能するかのように思われます.これらの特徴のそれぞれは、他のものから独立しています. そして、これは、リゾートが敷地内にレストランと近くにレストランの両方を持っている可能性を残しています.

于 2012-05-17T20:26:10.487 に答える