我需要一张带有列的表格 - > hotel_id,hotel_name,price_per_night,设施,首选
在此列中,设施和首选可能包含多个值。
例如 - >
设施可以是游泳池,水疗中心等(可以随时间添加许多差异值)
首选可以是情侣,家庭等(可以随时间添加许多差异值)
我对mysql很新。我很困惑如何设计我的数据库并考虑以下方法 - >
在一个列中包含多个值(这是一个坏主意)
创建三个表 - >
a.first将是hotel_main,列为hotel_id,hotel_name,price_per_night
b.second将是hotel_hotel,其中包含hotel_id,hotel_name,facility
c.third将是preferred_hotel的hotel_id,hotel_name,首选
我想就如何设计数据库提出更多建议。
答案 0 :(得分:1)
通常,非1NF设计在事务处理系统中是不好的想法。您遇到了许多难以解决的更新/删除完整性问题,并且MySQL甚至没有为您提供使插入安全的工具。
如果人们有效地使用非1NF设计,这些通常符合两个标准:
在两者都属实的情况下,甚至不考虑打破1NF。即使两者都是真的,这还不足以决定这样做。
所以选择第二种方法