我试图找出关联国家、地区和城镇表的最佳方法。
在我的网站上,我希望用户能够进入一个城镇。然后是可选的国家和地区,这两个都需要输入或根本不输入。
目前我的桌子是这样的
tbl>用户有 townID (FK)
tbl>town has id(PK) townName regionID(FK DEFAULT NULL)
tbl>region 有 id(PK) regionName countryID(FK NOT NULL)
tbl>国家有 id(PK) countryName
我认为可能会进一步将用户与城镇关系吐出:
tbl>用户有 locationID (FK)
tbl>location 有 id (PK) townID(FK) regionID(FK) countryID(FK)
但我认为这是不必要的,只会使问题进一步复杂化?
国家数据库已被填充。我打算建立自己的用户输入的城镇>地区>国家关系的参考。因此,如果用户输入一个没有地区和国家/地区的城镇,那么如果还没有一个没有地区 ID 的同名城镇,那么它会进入没有 regionID 的 tbl>town。对于用户已输入地区和国家 ID 的城镇也是如此。只有我在进入之前检查是否已经存在城镇 > 地区 > 国家关系。稍后在网站开发中,我将根据用户输入的城镇为国家/地区提供 Ajax 建议。
所以对于问题:
我可以设想这样的陷阱,例如重复数据或可能被覆盖的数据。有没有更好的方法来构建表格以适应我想要的方法?
前面的问题可能会回答这个问题:但是我可以做些什么来减少表的 PHP 处理。显然,我更喜欢只插入一个 PHP 语句,但我认为有太多的注意事项不能一次完成。
此外,由于用户的城镇条目可能为空,并且可能包含也可能不包含对区域的外键引用,因此如何最好地创建一个考虑到这一点的视图?
由于它将被托管,我宁愿不使用 MySQL 函数。
如果您需要任何澄清,请告诉我。在继续之前,我真的很想在第一次做到这一点,所以你的帮助将是无价的。