【发布时间】:2019-06-30 22:59:51
【问题描述】:
我创建了一个像这样的表(t_subject)
| id | description | enabled |
|----|-------------|---------|
| 1 | a | 1 |
| 2 | b | 1 |
| 3 | c | 1 |
还有一张这样的桌子(t_place)
| id | description | enabled |
|----|-------------|---------|
| 1 | d | 1 |
| 2 | e | 1 |
| 3 | f | 1 |
现在来自t_subject 的数据用于t_place 的每条记录,以显示HTML 下拉列表,以及来自t_subject 的所有结果。
所以我只是这样做
SELECT * FROM t_subject WHERE enabled = 1
现在只针对t_place 记录之一,应隐藏t_subject 的记录。
我不想简单地用 javascript 删除它,因为如果有任何变化,我希望能够自定义所有下拉列表。
所以我想到的第一件事就是在t_subject 中添加一个place_id 列。
但这意味着我必须复制所有 t_subject 记录,每个记录我都有 3 个,除了一个有 2 个。
有什么办法可以避免吗?
我想在t_subject 中添加一个id_exclusion 列,这样我只能在从t_place 的另一个ID 中排除一条记录时复制记录。
那会有多糟糕?到目前为止,这样我就没有重复了。
希望所有这些都有意义。
【问题讨论】:
-
这两张表是什么关系?我假设这是一个可以拍摄科目位置的数据库?在那种情况下,我假设这是一个多对多的关系?
-
此时没有关系。我不在乎有一个,因为对于每个位置我都需要所有主题...但是现在我必须从一个位置排除一个主题...我添加了一个
id_location_exclusion列并添加了一个外键约束t_placeid 列 -
这里的坏处是我必须
distinct结果以避免将来重复
标签: mysql database duplicates