我期待为商店旅行创建一个数据库。这些旅程有Location
,Mode
和Preferences
。 (所有这些都是实体或类)。现在假设每个Trip
只能有一个Preferences
,并且Preferences
可以是多次出行的一部分。现在“旅程偏好”,数据库设计
,我已经以这种方式建模的:
Trips(id, attr1, attr2, ..., prefs);
Preferences(id, pref1, pref2, pref3);
其中 '首选项' 是一个FK(和PREF1,PREF2和pref3是布尔类型)。
好吧,当我存储跳闸(与ID = 1)PREF1,具有相同偏好值PREF2和pref3为真,并再次访问(使用id = 2),我有这样的事情:
+------+----+-------+-----+---------------+
| Trip | id | attr1 | ... | prefs |
+------+----+-------+-----+---------------+
| | 1 | X | ... | 10 |
+------+----+-------+-----+---------------+
| | 2 | X | ... | 20 |
+------+----+-------+-----+---------------+
+-------------+------+-------+-------+---------+
| Preferences | id | pref1 | pref2 | pref3 |
+-------------+------+---------------+---------+
| | 10 | True | True | True |
+-------------+------+---------------+---------+
| | 20 | True | True | True |
+-------------+------+---------------+---------+
问题是:是不是有很多冗余?假设我存储了100次具有相同首选项值的行程,那么我将在Preferences
表中使用相同值的100行。
也许是一个问题,涉及我的应用程序,而不是我的数据库设计?
谢谢。
(对不起,我的基础英语)。
谢谢!我认为你的设计很好。 – 2011-12-21 23:03:57