针对不同手机的数据库设计建议

时间:2013-06-04 12:03:02

标签: mysql database-design relational-database normalization database-normalization

我正在构建一个迷你网站,允许人们按名称和型号搜索小工具(手机,平板电脑等......),我遇到的问题是如何在考虑名称约定时最好地设置数据库一些手机。

例如,三星Galaxy S手机有多种款式,型号为GT-I9000。 例如三星Galaxy S GT-I9000(下面的变化)

  • 三星Captivate
  • Samsung Vibrant
  • Samsung Fascinate
  • 三星Epic 4G
  • Samsung Mesmerize

是否有人能够就我设计这些表格的最佳方式提供一些建议 - 实质上这个项目最终将拥有相当大的数据库,因此我正在尝试相应地进行规划。

我希望能够设置数据库以使用户能够搜索“Captivate”或“Vibrant”并向他们展示Galaxy S GT-I9000,因为这是该设备的“主要”名称。

我目前有以下数据库表

brands - id, brand (eg 2, Samsung)
devices - id, brand_id, device_type_id, name (eg 1, 2, 3, Galaxy S)
device_types - id, type (eg 3, phone)

任何建议都将不胜感激。让我知道如果需要更多信息来了解我想要实现的目标,我将使用MySQL作为数据库。

1 个答案:

答案 0 :(得分:2)

诉讼支持系统始终遇到这个问题。通常的方法是构建一个别名表。最简单的结构是只有两列的表。

create table device_aliases (
  device_id integer not null,
  device_alias varchar(20) not null,
  primary key (device_id, device_alias),
  foreign key (device_id) references devices (id)
);