我想为一个闲逛网站创建一个数据库(MySQL),但我看不到它的最佳设计(这是我的第一个数据库)。主要问题是俱乐部改变了星期几的入场价格或音乐风格,所以我现在不知道如何解决这个问题。顺便说一句,你知道任何关于 MySQL 数据库设计的好手册吗?
太感谢了!问候。
我想为一个闲逛网站创建一个数据库(MySQL),但我看不到它的最佳设计(这是我的第一个数据库)。主要问题是俱乐部改变了星期几的入场价格或音乐风格,所以我现在不知道如何解决这个问题。顺便说一句,你知道任何关于 MySQL 数据库设计的好手册吗?
太感谢了!问候。
您绝对应该阅读有关数据库、外键等的知识。这些是基础知识,如果没有这些知识,您将一事无成。
但是为了让您开始,这里有一个简单的结构,应该可以满足您的要求。希望我理解正确,因为您在这里确实提供的细节很少。
表:
1) CLUB - 具有静态属性 - 不会经常更改,例如 ID、姓名、地址、网站、电话号码等。
数据行示例:
ID name website phone
1 clubA www.aclub.com 565-554-666
2 clubB www.bclub.com 523-552-778
2)MUSIC——音乐风格表,属性:ID,style_name)
数据行示例:
ID style_name
1 jazz
2 metal
3 techno
3) CLUB_DETAIL - 通过外键连接表club和music,有时称为交叉表,保存信息,属于两个表,属性:ID,club_id,music_id,日期,价格
数据行示例:
ID club_ID music_ID day_of_week entrance_fee
1 1 1 Monday 10$
2 1 2 Tuesday 8$
3 2 3 Monday 6$
.. etc.
ID是每个表中的主键,唯一标识记录,club_ID是表CLUB中ID的外键。
在表 CLUB_DETAIL 中,您可以拥有所需的所有可能组合,因此您不需要在 CLUB 表中将列重复 7 倍。
这只是一个例子,现实世界的用例可能会有所不同,但您没有提供足够的信息来更具体。我会使用 date 而不是 day_of_week,如果轮换的日程安排与周不同,这将给我更大的灵活性。