【发布时间】:2012-01-13 22:39:00
【问题描述】:
我的旅行项目架构的一部分包含以下表格
Cruises
Flights
Hotels
CarParking
我需要一个将这些产品中的一种或多种包装成一个包装的容器。一艘邮轮/酒店等可能是许多套餐的一部分。我一开始想到的
Package
- PackageId
- Etc
PackageItem
- PackageItemId
- PackageId (fk)
- ItemId (fk)
- ItemType
ItemType 将指示它是否是 Cruise、Flight、Hotel 等。我想我可以使用触发器来强制引用完整性。
我的另一个想法是
Package
- ...
PackageItem
- PackageItemId
- PackageId (fk)
- CruiseId (nullable fk)
- FlightId (nullable fk)
- HotelId (nullable fk)
- CarParkingId (nullable fk)
- etc
我想每个人都有优点和缺点,但我无法决定。你认为哪个更好,如果你必须实现这样的东西,你会选择哪个?
数据库是MySql。平台是 C# MVC ASP.NET
(我做了搜索,有几个类似的问题,但没有一个很好对应)
【问题讨论】:
标签: mysql sql database-design foreign-keys